Wake up multiple threads
#include <pthread.h> int _sleepon_broadcast( sleepon_t * l, const volatile void * addr );
- A pointer to a sleepon_t that you created by calling _sleepon_init() .
- The handle that the threads are waiting on. The value of addr is typically a data structure that controls a resource.
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The _sleepon_signal() and _sleepon_broadcast() functions are very similar:
- _sleepon_signal() wakes up a single thread that's waiting on the key, addr.
- _sleepon_broadcast() wakes up all threads that are waiting on the key, addr.
The waiting threads must have used the same sleepon, l and key, addr, in order to be woken up.
To be woken up, the calling threads must have been locked by _sleepon_lock() .