예제 #1
0
void grayDeferredThread(void *dummy)
{
	HRESULT		hResult = NO_ERROR;
	GRAY_EVENT*	event;

	UNUSED_ARG(dummy);

	DO_FOREVER
	{
		// gray deferred event handler thread message queue
		hResult = TCMsgQueueReceive(grayDeferredQueueID, (void *) &event, TC_WAIT_FOREVER);
		
		if (hResult == NO_ERROR)
		{
			grayEventHandleChange(event);
		}
	}
}
예제 #2
0
/*********************************************************
	thread cli CB deferred task
*/
void cliCBThread(void *dummy)
{
	HRESULT		hResult = NO_ERROR;
	CLICB_CMD*	cmd = NULL;

	UNUSED_ARG(dummy);

	DO_FOREVER
	{
		// thread cli CB deferred task message queue
		hResult = TCMsgQueueReceive(cliCBDeferredQueueID, (void *) &cmd, TC_WAIT_FOREVER);
		
		if (hResult == NO_ERROR)
		{
			SYS_DEBUG(SYSDEBUG_TRACE_CLICB, "CLI command call from deferred task: ");
			SYS_DEBUG(SYSDEBUG_TRACE_CLICB, cmd->cmdStr);
			SYS_DEBUG(SYSDEBUG_TRACE_CLICB, "\n\r");

			cliCBResult = cliCBHandleCommand(cmd->cmdStr);
			cliCBFreeDeferredCmd(cmd);
		}
	}
}