diff --git a/allocate.c b/allocate.c index 6548d0876742c6d93caacf87857d35449e93a82b..d7ef5f33e120d40378999440c50d85a78e9b95c7 100644 --- a/allocate.c +++ b/allocate.c @@ -174,6 +174,18 @@ int main(int argc, char *argv[]) { printf("Error in test file "); exit(1); } + // Log finished processes. + struct node * currNode = (struct node *) completedProcesses; + process * currProc = currNode->data; + while ( currNode ){ + if ( currProc->timeCompleted >= currentTime ) { + printf("%d,FINISHED,pid=%s,proc_remaining=%d\n", + currProc->timeCompleted, currProc->processID, numProcessesLeft); + + } + currNode = currNode->next; + if (currNode) currProc = currNode->data; + } // Log started processes. for (int j = 0; j < numCPU; j++) { headProcess = headData(CPUs[j].processQueue); @@ -313,13 +325,13 @@ process *headData(llist *q) { } process *parallelParent(llist *q, char *parentPid) { - struct node *head = *q; + struct node *curr = *q; process *p; - if (head) p = head->data; - while (head && !strncmp(p->processID, parentPid, strlen(parentPid))) { - head = head->next; - p = head->data; + if (curr) p = curr->data; + while (curr && !strncmp(p->processID, parentPid, strlen(parentPid))) { + curr = curr->next; + p = curr->data; } return p; } @@ -355,10 +367,8 @@ void advanceProcessQueue(llist *processQueue, int currentTime, int deltaTime, ll paralizedProcess->timeRemaining = 0; headProcess->timeRemaining = 0; //printf("process had finished: Current time: %d, deltaTime: %d\n", currentTime, deltaTime); - printf("%d,FINISHED,pid=%s,proc_remaining=%d\n", - paralizedProcess->timeCompleted, paralizedProcess->processID, *numProcessesLeft); - // Could accumulate statistics here instead of keeping list of completed processes - llist_push(processesComplete, paralizedProcess); +// // Could accumulate statistics here instead of keeping list of completed processes +// llist_push(processesComplete, paralizedProcess); } llist_pop(processQueue); headProcess = headData(processQueue);