void withdrawer(struct account* acct) { pthread_mutex_lock(&acct->mutex); while (acct->bal < 100) { pthread_cond_wait(&acct->cond, &acct->mutex); } withdraw(acct, 100); pthread_mutex_unlock(&acct->mutex); } void depositer(struct account* acct) { pthread_mutex_lock(&acct->mutex); deposit(acct, 100); pthread_mutex_unlock(&acct->mutex); pthread_cond_signal(&acct->cond); }