latest version of osiThread

This commit is contained in:
Marty Kraimer
2000-02-03 21:56:33 +00:00
parent 1bbf5141d4
commit ea27976241
3 changed files with 22 additions and 22 deletions
+1 -1
View File
@@ -328,7 +328,6 @@ LOCAL void errlogTask(void)
while(TRUE) {
char *pmessage;
semBinaryMustTake(pvtData.errlogTaskWaitForWork);
while((pmessage = msgbufGetSend())) {
semMutexMustTake(pvtData.listenerLock);
if(pvtData.toConsole) printf("%s",pmessage);
@@ -340,6 +339,7 @@ LOCAL void errlogTask(void)
semMutexGive(pvtData.listenerLock);
msgbufFreeSend();
}
semBinaryMustTake(pvtData.errlogTaskWaitForWork);
}
}
+13 -13
View File
@@ -31,22 +31,22 @@ static void binaryThread(void *arg)
{
info *pinfo = (info *)arg;
time_t tp;
printf("binaryThread %d starting time %d\n",pinfo->threadnum,time(&tp));
printf("binaryThread %d starting time %ld\n",pinfo->threadnum,time(&tp));
threadSleep(1.0);
while(1) {
semTakeStatus status;
if(pinfo->quit) {
printf("binaryThread %d returning time %d\n",
printf("binaryThread %d returning time %ld\n",
pinfo->threadnum,time(&tp));
semBinaryGive(pinfo->binary);
return;
}
status = semBinaryTake(pinfo->binary);
if(status!=semTakeOK) {
printf("task %d semBinaryTake returned %d time %d\n",
printf("task %d semBinaryTake returned %d time %ld\n",
pinfo->threadnum,(int)status,time(&tp));
}
printf("binaryThread %d semBinaryTake time %d\n",
printf("binaryThread %d semBinaryTake time %ld\n",
pinfo->threadnum,time(&tp));
semBinaryGive(pinfo->binary);
threadSleep(1.0);
@@ -68,20 +68,20 @@ void semBinaryTest(int nthreads,int verbose)
errVerbose = verbose;
binary = semBinaryMustCreate(semEmpty);
printf("calling semBinaryTakeTimeout(binary,2.0) time %d\n",time(&tp));
printf("calling semBinaryTakeTimeout(binary,2.0) time %ld\n",time(&tp));
status = semBinaryTakeTimeout(binary,2.0);
if(status!=semTakeTimeout) printf("status %d\n",status);
printf("calling semBinaryTakeNoWait(binary) time %d\n",time(&tp));
printf("calling semBinaryTakeNoWait(binary) time %ld\n",time(&tp));
status = semBinaryTakeNoWait(binary);
if(status!=semTakeTimeout) printf("status %d\n",status);
printf("calling semBinaryGive() time %d\n",time(&tp));
printf("calling semBinaryGive() time %ld\n",time(&tp));
semBinaryGive(binary);
printf("calling semBinaryTakeTimeout(binary,2.0) time %d\n",time(&tp));
printf("calling semBinaryTakeTimeout(binary,2.0) time %ld\n",time(&tp));
status = semBinaryTakeTimeout(binary,2.0);
if(status) printf("status %d\n",status);
printf("calling semBinaryGive() time %d\n",time(&tp));
printf("calling semBinaryGive() time %ld\n",time(&tp));
semBinaryGive(binary);
printf("calling semBinaryTakeNoWait(binary) time %d\n",time(&tp));
printf("calling semBinaryTakeNoWait(binary) time %ld\n",time(&tp));
status = semBinaryTakeNoWait(binary);
if(status) printf("status %d\n",status);
@@ -102,14 +102,14 @@ void semBinaryTest(int nthreads,int verbose)
pinfo[i]->binary = binary;
arg[i] = pinfo[i];
id[i] = threadCreate(name[i],40,stackSize,binaryThread,arg[i]);
printf("semTest created binaryThread %d id %p time %d\n",
printf("semTest created binaryThread %d id %p time %ld\n",
i, id[i],time(&tp));
}
threadSleep(2.0);
printf("semTest calling semBinaryGive(binary) time %d\n",time(&tp));
printf("semTest calling semBinaryGive(binary) time %ld\n",time(&tp));
semBinaryGive(binary);
threadSleep(5.0);
printf("semTest setting quit time %d\n",time(&tp));
printf("semTest setting quit time %ld\n",time(&tp));
for(i=0; i<nthreads; i++) {
pinfo[i]->quit = 1;
}
+8 -8
View File
@@ -24,9 +24,9 @@ of this distribution.
static void threadFunc(void *arg)
{
int argvalue = *(int *)arg;
printf("threadFunc %d starting\n",argvalue);
errlogPrintf("threadFunc %d starting\n",argvalue);
threadSleep(2.0);
printf("threadFunc %d stopping\n",argvalue);
errlogPrintf("threadFunc %d stopping\n",argvalue);
}
void threadTest(int ntasks,int verbose)
@@ -39,14 +39,14 @@ void threadTest(int ntasks,int verbose)
int startPriority,minPriority,maxPriority;
int errVerboseSave = errVerbose;
printf("threadTest ntasks %d verbose %d\n",ntasks,verbose);
errVerbose = verbose;
errlogInit(4096);
id = calloc(ntasks,sizeof(threadId *));
name = calloc(ntasks,sizeof(char **));
arg = calloc(ntasks,sizeof(void *));
printf("threadTest starting\n");
errlogPrintf("threadTest starting\n");
stackSize = threadGetStackSize(threadStackSmall);
printf("stackSize %u\n",stackSize);
errlogPrintf("stackSize %u\n",stackSize);
for(i=0; i<ntasks; i++) {
int *argvalue;
name[i] = calloc(10,sizeof(char));
@@ -56,18 +56,18 @@ printf("threadTest ntasks %d verbose %d\n",ntasks,verbose);
*argvalue = i;
startPriority = 50+i;
id[i] = threadCreate(name[i],startPriority,stackSize,threadFunc,arg[i]);
printf("threadTest created %d id %p\n",i,id[i]);
errlogPrintf("threadTest created %d id %p\n",i,id[i]);
startPriority = threadGetPriority(id[i]);
threadSetPriority(id[i],threadPriorityMin);
minPriority = threadGetPriority(id[i]);
threadSetPriority(id[i],threadPriorityMax);
maxPriority = threadGetPriority(id[i]);
threadSetPriority(id[i],50+i);
if(i==0)printf("startPriority %d minPriority %d maxPriority %d\n",
if(i==0)errlogPrintf("startPriority %d minPriority %d maxPriority %d\n",
startPriority,minPriority,maxPriority);
}
threadSleep(5.0);
printf("threadTest terminating\n");
errlogPrintf("threadTest terminating\n");
errVerbose = errVerboseSave;
}