/* threadTest.c */ /* Author: Marty Kraimer Date: 26JAN2000 */ /********************COPYRIGHT NOTIFICATION********************************** This software was developed under a United States Government license described on the COPYRIGHT_UniversityOfChicago file included as part of this distribution. ****************************************************************************/ #include #include #include #include #include #include #include #include "osiThread.h" #include "osiSem.h" #include "errlog.h" threadPrivateId privateKey; static void threadFunc(void *arg) { int myPrivate; int argvalue = *(int *)arg; myPrivate = argvalue; threadPrivateSet(privateKey,(void *)argvalue); errlogPrintf("threadFunc %d starting\n",argvalue); threadSleep(2.0); argvalue = -1; argvalue = (int)threadPrivateGet(privateKey); errlogPrintf("threadFunc %d stopping myPrivate %d\n",argvalue,myPrivate); } void threadTest(int ntasks,int verbose) { unsigned int stackSize; threadId *id; int i; char **name; void **arg; int startPriority,minPriority,maxPriority; int errVerboseSave = errVerbose; threadInit (); errVerbose = verbose; errlogInit(4096); id = calloc(ntasks,sizeof(threadId *)); name = calloc(ntasks,sizeof(char **)); arg = calloc(ntasks,sizeof(void *)); errlogPrintf("threadTest starting\n"); stackSize = threadGetStackSize(threadStackSmall); errlogPrintf("stackSize %u\n",stackSize); privateKey = threadPrivateCreate(); for(i=0; i