Condition variables are like a pulsed one-count semaphore. N threads may wait on a condition variable. When a thread calls signal, one waiting thread is released. This is like a Win32 ``Event'' sync primitive.
Note however, that there is no function to release all waiting threads simultaneously, so this is not really very useful above a semaphore at the moment. Will be documented in more detail later.