An asynchronous condition variable is a primitive for controlling synchronization between concurrent programs, they pause the execution of certain threads until it receives a signal to continue their execution.
A thread can perform two operations on an asynchronous condition variable, it can either wait for the condition variable to signal, or broadcast which releases all waiting threads.