static void Oxygen(Semaphore oxygenReady, Semaphore hydrogenReady) { SemaphoreWait(hydrogenReady); SemaphoreWait(hydrogenReady); SemaphoreSignal(oxygenReady); SemaphoreSignal(oxygenReady); printf("Water made!\n"); }
void DeleteThreadQueue(ThreadQueue *q) { if (q->sem) { SemaphoreSignal(q->sem); SemaphoreDestroy(q->sem); q->sem = NULL; } DestroyQueue(q->queue); free(q); }
static void Hydrogen(Semaphore oxygenReady, Semaphore hydrogenReady) { SemaphoreWait(oxygenReady); SemaphoreSignal(hydrogenReady); }
void PushThreadQueue(ThreadQueue *q, void *p) { QueuePushBack(q->queue, p); SemaphoreSignal(q->sem); }