rem: bank[i].id = bank[i].used = 0; ResetSemaphoreOwner (bank[i].var); ClearSemaphore (bank[i].var); break;
add: UnlockMutex (bank_mutex);  LockMutex (bank[i].control);  SignalCondVar (bank[i].var); UnlockMutex (bank[i].control); return;
context: SignalThread (DWORD id){	int i;	LockMutex (bank_mutex);	for (i = 0; i < CONDVAR_BANK_SIZE; i++)	{		if (bank[i].used && bank[i].id == id)		{			bank[i].id = bank[i].used = 0;			ResetSemaphoreOwner (bank[i].var);			ClearSemaphore (bank[i].var);			break;		}	}	if (i == CONDVAR_BANK_SIZE)		fprintf (stderr, "Warning: Couldn't find thread to signal!\n");	UnlockMutex (bank_mutex);}