variável de condição - por que chamar pthread_cond_signal () antes de chamar pthread_cond_wait () é um erro lógic

Está escrito no tutorial de tópicos do POSIXhttps: //computing.llnl.gov/tutorials/pthreads que é um erro lógico.

minha pergunta é por que é um erro lógico?

No meu programa eu preciso usar esses sinais, no entanto, não posso garantir que haverá um thread que estará no estado _cond_wait. Eu tentei testá-lo e nada acontece. Isso pode causar comportamento inesperado ou pior?

obrigado