cnd_broadcast() should use pthread_cond_broadcast(), not pthread_cond_signal()