Meanwhile, On The Signaling Side (Cont.) Success of a 'signal' or 'broadcast' operation does not mean any thread was actually waiting on the condition variable, and thus the signaling did nothing. The signal is also not 'remembered' - it just gets lost. This does not indicate a bug - unless there is a race - as we'll see later. If several threads were waiting on a condition variable, and we used 'pthread_cond_signal' - we can not know which of the waiting threads will be woken up - there is no FIFO order guaranteed, and our code should NOT rely on some ordering.