X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FRuntime%2Ftask.c;fp=Robust%2Fsrc%2FRuntime%2Ftask.c;h=142f076d263395e8c8d5f25f5750241c7a4be1df;hb=b5b4c265fdf004e9d0834cb96f724d1c581654b8;hp=ac045dad75d3f11635c941630773d1c95fed09c3;hpb=4a5aecc79ed85540b895ab46a214404e58bc6d41;p=IRC.git diff --git a/Robust/src/Runtime/task.c b/Robust/src/Runtime/task.c index ac045dad..142f076d 100644 --- a/Robust/src/Runtime/task.c +++ b/Robust/src/Runtime/task.c @@ -22,9 +22,7 @@ extern int instaccum; #endif struct genhashtable * activetasks; -#ifndef MULTICORE struct parameterwrapper * objectqueues[NUMCLASSES]; -#endif struct genhashtable * failedtasks; struct taskparamdescriptor * currtpd; struct RuntimeHash * forward; @@ -80,13 +78,8 @@ void createstartupobject(int argc, char ** argv) { } /* Set initialized flag for startup object */ -#ifdef MULTICORE - flagorand(startupobject,1,0xFFFFFFFF,NULL,0); - enqueueObject(startupobject, objq4startupobj[corenum], numqueues4startupobj[corenum]); -#else flagorand(startupobject,1,0xFFFFFFFF); enqueueObject(startupobject); -#endif } int hashCodetpd(struct taskparamdescriptor *ftd) { @@ -296,11 +289,7 @@ struct ___TagDescriptor___ * allocate_tag(int index) { /* This function updates the flag for object ptr. It or's the flag with the or mask and and's it with the andmask. */ -#ifdef MULTICORE -void flagbody(struct ___Object___ *ptr, int flag, struct parameterwrapper ** queues, int length); -#else void flagbody(struct ___Object___ *ptr, int flag); -#endif #ifdef OPTIONAL void enqueueoptional(struct ___Object___ * currobj, int numfailedfses, int * failedfses, struct taskdescriptor * task, int index); #endif @@ -309,11 +298,7 @@ void enqueueoptional(struct ___Object___ * currobj, int numfailedfses, int * fai return (*val1)-(*val2); } -#ifdef MULTICORE -void flagorand(void * ptr, int ormask, int andmask, struct parameterwrapper ** queues, int length) { -#else void flagorand(void * ptr, int ormask, int andmask) { -#endif #ifdef OPTIONAL struct ___Object___ * obj = (struct ___Object___ *)ptr; if(obj->numfses){/*store the information about fses*/ @@ -336,11 +321,7 @@ void flagorand(void * ptr, int ormask, int andmask) { int oldflag=((int *)ptr)[1]; int flag=ormask|oldflag; flag&=andmask; -#ifdef MULTICORE - flagbody(ptr, flag, queues, length); -#else flagbody(ptr, flag); -#endif } } @@ -370,11 +351,7 @@ bool intflagorand(void * ptr, int ormask, int andmask) { if (flag==oldflag) /* Don't do anything */ return false; else { -#ifdef MULTICORE - flagbody(ptr, flag, NULL, 0); -#else flagbody(ptr, flag); -#endif return true; } } @@ -384,67 +361,32 @@ void flagorandinit(void * ptr, int ormask, int andmask) { int oldflag=((int *)ptr)[1]; int flag=ormask|oldflag; flag&=andmask; -#ifdef MULTICORE - flagbody(ptr,flag,NULL,0); -#else flagbody(ptr,flag); -#endif } -#ifdef MULTICORE -void flagbody(struct ___Object___ *ptr, int flag, struct parameterwrapper ** queues, int length) { -#else void flagbody(struct ___Object___ *ptr, int flag) { -#endif -#ifdef MULTICORE - struct parameterwrapper * flagptr = NULL; - int i = 0; -#else struct parameterwrapper *flagptr=(struct parameterwrapper *)ptr->flagptr; -#endif ptr->flag=flag; /*Remove object from all queues */ -#ifdef MULTICORE - for(i = 0; i < length; ++i) { - flagptr = queues[i]; -#else while(flagptr!=NULL) { -#endif -#ifdef MULTICORE - int next; -#else struct parameterwrapper *next; -#endif int UNUSED, UNUSED2; int * enterflags; ObjectHashget(flagptr->objectset, (int) ptr, (int *) &next, (int *) &enterflags, &UNUSED, &UNUSED2); ObjectHashremove(flagptr->objectset, (int)ptr); if (enterflags!=NULL) free(enterflags); -#ifdef MULTICORE - ; -#else flagptr=next; -#endif } } -#ifdef MULTICORE - void enqueueObject(void * vptr, struct parameterwrapper ** queues, int length) { -#else void enqueueObject(void *vptr) { -#endif struct ___Object___ *ptr = (struct ___Object___ *)vptr; { struct QueueItem *tmpptr; -#ifdef MULTICORE - struct parameterwrapper * parameter=NULL; - int j; -#else struct parameterwrapper * parameter=objectqueues[ptr->type]; -#endif int i; struct parameterwrapper * prevptr=NULL; struct ___Object___ *tagptr=ptr->___tags___; @@ -452,12 +394,7 @@ void flagbody(struct ___Object___ *ptr, int flag) { /* Outer loop iterates through all parameter queues an object of this type could be in. */ -#ifdef MULTICORE - for(j = 0; j < length; ++j) { - parameter = queues[j]; -#else while(parameter!=NULL) { -#endif /* Check tags */ if (parameter->numbertags>0) { if (tagptr==NULL) @@ -498,52 +435,12 @@ void flagbody(struct ___Object___ *ptr, int flag) { } } nextloop: -#ifdef MULTICORE - ; -#else parameter=parameter->next; -#endif } -#ifdef MULTICORE - /*if(prevptr != NULL) { - ptr->flagptr=prevptr->arrayindex; - } else { - ptr->flagptr = 0; - }*/ -#else ptr->flagptr=prevptr; -#endif } } -#ifdef MULTICORE - -void transferObject(void * obj, int targetcore) { - int type=((int *)obj)[0]; - // if (type___localcopy___=newobj; - //} else { - /* We have an array */ - /*struct ArrayObject *ao=(struct ArrayObject *)obj; - int elementsize=classsize[type]; - int length=ao->___length___; - int size=sizeof(struct ArrayObject)+length*elementsize; - struct ___Object___ * newobj=FREEMALLOC(size); - memcpy(newobj, obj, size); - obj->___localcopy___=newobj; - }*/ -} - -#endif - #ifdef OPTIONAL int checktags(struct ___Object___ * currobj, struct fsanalysiswrapper * fswrapper) { @@ -987,15 +884,7 @@ int enqueuetasks(struct parameterwrapper *parameter, struct parameterwrapper *pr retval=0; } else { #endif -#ifdef MULTICORE - /*int arrayindex = 0; - if(prevptr != NULL) { - arrayindex = prevptr->arrayindex; - }*/ - ObjectHashadd(parameter->objectset, (int) ptr, 0, (int) enterflags, numenterflags, enterflags==NULL);//this add the object to parameterwrapper -#else ObjectHashadd(parameter->objectset, (int) ptr, (int) prevptr, (int) enterflags, numenterflags, enterflags==NULL);//this add the object to parameterwrapper -#endif #ifdef OPTIONAL } #endif @@ -1180,11 +1069,7 @@ void executetasks() { // printf("Setting fd %d\n",fd); if (RuntimeHashget(fdtoobject, fd,(int *) &objptr)) { if(intflagorand(objptr,1,0xFFFFFFFF)) { /* Set the first flag to 1 */ -#ifdef MULTICORE - enqueueObject(objptr, NULL, 0); -#else enqueueObject(objptr); -#endif } } } @@ -1468,13 +1353,8 @@ void builditerators(struct taskdescriptor * task, int index, struct parameterwra void printdebug() { int i; int j; -#ifdef MULTICORE - for(i=0;iname); for(j=0;jnumParameters;j++) { struct parameterdescriptor *param=task->descriptorarray[j]; @@ -1518,16 +1398,10 @@ void builditerators(struct taskdescriptor * task, int index, struct parameterwra void processtasks() { int i; -#ifdef MULTICORE - for(i=0;inumParameters;j++) { struct parameterdescriptor *param=task->descriptorarray[j]; struct parameterwrapper * parameter=RUNMALLOC(sizeof(struct parameterwrapper)); @@ -1546,16 +1420,11 @@ void processtasks() { ptr=&((*ptr)->next); (*ptr)=parameter; } -#endif /* Build iterators for parameters */ for(j=0;jnumParameters;j++) { struct parameterdescriptor *param=task->descriptorarray[j]; struct parameterwrapper *parameter=param->queue; -#ifdef MULTICORE - parameter->objectset=allocateObjectHash(10); - parameter->task=task; -#endif builditerators(task, j, parameter); } }