al_lock_mutex man page
al_lock_mutex — Allegro 5 API
#include <allegro5/allegro.h> void al_lock_mutex(ALLEGRO_MUTEX *mutex)
Acquire the lock on
mutex. If the mutex is already locked by another thread, the call will block until the mutex becomes available and locked.
If the mutex is already locked by the calling thread, then the behaviour depends on whether the mutex was created with al_create_mutex(3) or al_create_mutex_recursive(3). In the former case, the behaviour is undefined; the most likely behaviour is deadlock. In the latter case, the count in the mutex will be incremented and the call will return immediately.
We don't yet have al_mutex_trylock.