al_wait_cond - Allegro 5 API
-
#include <allegro5/allegro.h>
void al_wait_cond(ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex)
On entering this function, mutex must be locked by the calling thread. The
function will atomically release mutex and block on cond. The function will
return when cond is “signalled”, acquiring the lock on the mutex
in the process.
Example of proper use:
-
al_lock_mutex(mutex);
while (something_not_true) {
al_wait_cond(cond, mutex);
}
do_something();
al_unlock_mutex(mutex);
The mutex should be locked before checking the condition, and
should be rechecked al_wait_cond(3) returns. al_wait_cond(3) can return for
other reasons than the condition becoming true (e.g. the process was
signalled). If multiple threads are blocked on the condition variable, the
condition may no longer be true by the time the second and later threads are
unblocked. Remember not to unlock the mutex prematurely.
al_wait_cond_until(3), al_broadcast_cond(3), al_signal_cond(3).