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;
void e_wakeup_one ( event_word)
tid_t *event_word;
void e_wakeup_w_result ( event_word,  result)
tid_t *event_word;
int result;

参数

描述
事件词 指定共享事件标志符。 内核使用 event_word 参数作为正在等待此共享事件的线程的列表的锚点。
结果 指定返回到已唤醒的内核线程的值。 可以使用下列值:
THREAD_AWAKED
指示正常的唤醒。 此值是由 警醒警醒一 内核服务自动生成的。
线程中断
指示睡眠中断。 此值通常是在设置 可中断 标志时通过信号传递生成的。
线程超时
指示超时到期。
其他主题
根据需要在子系统级别定义的系统代码来描述预定义的系统代码。 子系统应定义它们自己的大于或等于此值的值。

描述

警醒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 参数必须位于固定内存中。