Notifies kernel threads waiting on a shared event of the event's occurrence.
#include <sys/types.h> #include <sys/errno.h> #include <sys/sleep.h>
void e_wakeup ( event_word)
tid_t *event_word;
void e_wakeup_one ( event_word)
tid_t *event_word;
void e_wakeup_w_result ( event_word, result)
tid_t *event_word;
int result;
The e_wakeup and e_wakeup_w_result kernel services wake up all kernel threads sleeping on the event list anchored by the event_word parameter. The e_wakeup_one kernel service wakes up only the most favored thread sleeping on the event list anchored by the event_word parameter.
When threads are awakened, they return from a call to either the e_block_thread or e_sleep_thread kernel service. The return value depends on the kernel service called to wake up the threads (the wake-up kernel service):
If a signal is delivered to a thread being awakened by one of the wake-up kernel services, and if the thread specified the INTERRUPTIBLE flag, the signal delivery takes precedence. The thread is awakened with a return value of THREAD_INTERRUPTED, regardless of the called wake-up kernel service.
The e_wakeup and e_wakeup_w_result kernel services set the event_word parameter to EVENT_NULL.
The e_wakeup, e_wakeup_one, and e_wakeup_w_result kernel services have no return values.
The e_wakeup, e_wakeup_one, and e_wakeup_w_result kernel services can be called from either the process environment or the interrupt environment.
When called by an interrupt handler, the event_word parameter must be located in pinned memory.
The e_block_thread kernel service, e_clear_wait kernel service, e_sleep_thread kernel service.
Process and Exception Management Kernel Services in AIX 5L Version 5.2 Kernel Extensions and Device Support Programming Concepts.