void Customer (int numCones) {
Semaphore clerksDone; // init to 0
for (int i = 0; i < numCones; i++) {
ThreadNew("...", Clerk, 1, clerksDone);
for (int i = 0; i < numCones; i++) {
SemaphoreWait(clerksDone);
SemaphoreFree(clerksDone);
SemaphoreWait(line.lock);
int place = line.number++;
SemaphoreSignal(line.lock);
SemaphoreSignal(line.requested);
SemaphoreWait(line.customers[place]);