/*----------------------------------------------------------+ | SHARE Multi-tasking Example - 1998 Winter conference | | session 5957 | +----------------------------------------------------------*/ /*-------------------------------------------------------------------+ | Miscellaneous includes. | +-------------------------------------------------------------------*/ #include #include #include #include #include "shrtyp.h" #include "shrpro.h" #define DECLARE_GLOBALS 1 #include "shrgbl.h" int _stack = 12288; int _heap = 8192; extern int _stkabv = 1; extern int _stkrels = 1; UINT main(int argc, char *argv[]) { int count, len; char buffer[100]; char *pStopchar; PTASK pTask; ULONG ulDataLength; /* length of element received */ MSG stMsg; /* queue message */ pTask = (PTASK) strtoul(argv[1], &pStopchar, 16); if (pStopchar == argv[1]) exit(20); pAnchor = pTask->pAnchor; sprintf(buffer,"Entered subtask #%i", pTask->iTaskNum); Log(buffer); sprintf(buffer, "Task #%i, Input parameters ==> ", pTask->iTaskNum); len = strlen(buffer); for (count=1; count < argc; count++ ) { sprintf(&buffer[len],"%s ",argv[count]); len = strlen(buffer); } Log(buffer); sprintf(buffer,"Subtask #%i, pAnchor = %08X", pTask->iTaskNum, pAnchor); Log(buffer); sprintf(buffer,"Subtask #%i, pTask = %08X", pTask-> iTaskNum, pTask); Log(buffer); ulDataLength = sizeof(stMsg); /* set max received msg length */ while (1) { ReadQueue(&pTask->stQueue, &ulDataLength, (PUCHAR) &stMsg); switch (stMsg.uiMsg) { case SHUTDOWN: { sprintf(buffer,"Subtask #%i, shutting down", pTask->iTaskNum); Log(buffer); return (EXIT_SUCCESS); } case TIMERPOP: { sprintf(buffer,"Subtask #%i, received timer pop", pTask->iTaskNum); Log(buffer); break; } default: { sprintf(buffer,"Subtask #%i, unknown message received %08x", pTask->iTaskNum, stMsg.uiMsg); Log(buffer); break; } } } }