_sleepon_signal()
Wake up a single thread
Synopsis:
#include <pthread.h> int _sleepon_signal( sleepon_t * l, const volatile void * addr );
Arguments:
- l
- A pointer to a sleepon_t that you created by calling _sleepon_init() .
- addr
- The handle that the thread is waiting on. The value of addr is typically a data structure that controls a resource.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
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() .
Returns:
- 0
- Success.
- ≠0
- Failure.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |