e_wakeup , e_wakeup_one 或 e_wakeup_w_result Kernel Service
用途
通知正在等待共享事件的内核线程该事件的发生。
语法
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/sleep.h> void e_wakeup ( event_word)
tid_t *event_word;
tid_t *event_word;
void e_wakeup_one ( event_word)
tid_t *event_word;
tid_t *event_word;
参数
| 项 | 描述 |
|---|---|
| 事件词 | 指定共享事件标志符。 内核使用 event_word 参数作为正在等待此共享事件的线程的列表的锚点。 |
| 结果 | 指定返回到已唤醒的内核线程的值。 可以使用下列值:
|
描述
警醒 和 e_wakeup_w_result 内核服务唤醒在事件列表上休眠的所有内核线程,这些线程由 event_word 参数锚定。 警醒一 内核服务仅唤醒在由 event_word 参数锚定的事件列表上休眠的最受青睐的线程。
当线程被唤醒时,它们会从对 e_block_thread 或 埃斯莱普线程 内核服务的调用返回。 返回值取决于所调用的内核服务以唤醒线程 (唤醒内核服务):
- 如果调用 警醒 或 警醒一 内核服务,那么将返回 THREAD_AWAKED
- 如果调用了 e_wakeup_w_result 内核服务,那么将返回 结果 参数的值。
如果将信号传递到正在由某个唤醒内核服务唤醒的线程,并且如果线程指定了 可中断 标志,那么将优先传递信号。 线程被唤醒时返回值为 THREAD_INTERRUPTED,而不考虑被调用的唤醒内核服务。
警醒 和 e_wakeup_w_result 内核服务将 event_word 参数设置为 EVENT_NULL。
警醒, 警醒一和 e_wakeup_w_result 内核服务不具有任何返回值。
执行环境
警醒, 警醒一和 e_wakeup_w_result 内核服务可以从 流程 环境或 中断 环境中进行调用。
当由中断处理程序调用时, event_word 参数必须位于固定内存中。