static void Oxygen(Semaphore oxygenReady, Semaphore hydrogenReady)
{
SemaphoreWait(hydrogenReady);
SemaphoreWait(hydrogenReady);
SemaphoreSignal(oxygenReady);
SemaphoreSignal(oxygenReady);
printf("Water made!\n");
}
Esempio n. 2
0
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);
}
Esempio n. 4
0
void PushThreadQueue(ThreadQueue *q, void *p)
{
	QueuePushBack(q->queue, p);
	SemaphoreSignal(q->sem);
}