I have been working with pthread_cond_t and associated functions and I read that usually a mutex is used in conjunction with the condition when calling pthread_cond_wait or pthread_cond_signal/broadcast. The online texts only mention that the mutex is used for 'predictable behaviour'. Does this mean that there's no need to use a mutex with a condition? Can someone explai what is going on? Thanks.