struct parameterwrapper * parameter=objectqueues[((int *)ptr)[0]];
int i;
flagptr=NULL;
- for(i=0;i<parameter->numberofterms;i++) {
- int andmask=parameter->intarray[i*2];
- int checkmask=parameter->intarray[i*2+1];
- if ((flag&andmask)==checkmask) {
- struct QueueItem * qitem=addNewItem(parameter->queue, ptr);
- if (flagptr==NULL) {
- flagptr=qitem;
- tmpptr=flagptr;
- } else {
- tmpptr->nextqueue=qitem;
- tmpptr=qitem;
+ while(parameter!=NULL) {
+ for(i=0;i<parameter->numberofterms;i++) {
+ int andmask=parameter->intarray[i*2];
+ int checkmask=parameter->intarray[i*2+1];
+ if ((flag&andmask)==checkmask) {
+ struct QueueItem * qitem=addNewItem(parameter->queue, ptr);
+ if (flagptr==NULL) {
+ flagptr=qitem;
+ tmpptr=flagptr;
+ } else {
+ tmpptr->nextqueue=qitem;
+ tmpptr=qitem;
+ }
+ SimpleHashadd(activetasks, (int)parameter->task, (int)parameter->task);
+ break;
}
- SimpleHashadd(activetasks, (int)parameter->task, (int)parameter->task);
- break;
}
+ parameter=parameter->next;
}
((struct QueueItem **)ptr)[2]=flagptr;
}
void executetasks() {
void * pointerarray[MAXTASKPARAMS];
- while(1) {
newtask:
- {
+ while(SimpleHashcountset(activetasks)!=0) {
struct taskdescriptor * task=(struct taskdescriptor *) SimpleHashfirstkey(activetasks);
int i;
- if (task==NULL)
- break;
for(i=0;i<task->numParameters;i++) {
struct parameterwrapper * parameter=(struct parameterwrapper *) task->descriptorarray[i]->queue;
struct Queue * queue=parameter->queue;
pointerarray[i]=getTail(queue)->objectptr;
}
((void (*) (void **)) task->taskptr)(pointerarray);
- }
}
}
parameter->intarray=param->intarray;
parameter->task=task;
/* Link new queue in */
- while(*ptr!=NULL)
+ while((*ptr)!=NULL)
ptr=&((*ptr)->next);
(*ptr)=parameter;
}
shift
mkdir tmpbuilddirectory
java -cp $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary $ROBUSTROOT/ClassLibrary/ -dir tmpbuilddirectory -task $@
-gcc -I$ROBUSTROOT/Runtime -Itmpbuilddirectory -O0 -DTASK -g tmpbuilddirectory/methods.c $ROBUSTROOT/Runtime/runtime.c $ROBUSTROOT/Runtime/Queue.c $ROBUSTROOT/Runtime/SimpleHash.c -o $MAINFILE.bin
\ No newline at end of file
+gcc -I$ROBUSTROOT/Runtime -Itmpbuilddirectory -O0 -DTASK -g tmpbuilddirectory/methods.c tmpbuilddirectory/taskdefs.c $ROBUSTROOT/Runtime/runtime.c $ROBUSTROOT/Runtime/Queue.c $ROBUSTROOT/Runtime/SimpleHash.c -o $MAINFILE.bin
\ No newline at end of file