Does pthread_cond_wait put the calling thread to wait state to be waken up by pthread_cond_signal/pthread_cond_broadcast, so that it does not poll and churn the CPU?
Also, does sem_wait put the thread in wait state? If I understand correctly the mutex acquire/release methods make the threads poll continuously on the mutex and do not put the thread in waiting state.