e_sleep 内核服务
用途
强制进行调用的内核线程等待共享事件发生。
语法
#include <sys/types.h> #include <sys/errno.h> #include <sys/sleep.h> int 睡眠 (整数) event_word, 标志) tid_t *event_word; 英特 标志;
参数
| 项 | 描述 |
|---|---|
| event_word | 指定共享事件字。 内核使用 event_word 参数来锚定在此事件上休眠的进程的列表。 event_word 参数必须先初始化为 EVENT_NULL ,然后才能首次使用。 |
| 标志 | 指定用于控制信号出现时的操作的标志。 这些标志可以在 /usr/include/sys/sleep.h 文件中找到。 标志 参数用于控制信号如何影响等待事件的情况。 以下标志对 睡眠 服务可用:
|
描述
睡眠 内核服务用来等待指定的共享事件发生。 内核将当前内核线程放置在由 event_word 参数锚定的列表上。 此列表由 警醒 服务用于唤醒所有正在等待事件发生的线程。
事件列表的锚点 ( event_word 参数) 必须先初始化为 EVENT_NULL ,然后才能首次使用。 在使用此锚点时,内核扩展不得改变此锚点。
警醒 服务不会唤醒当前未在 睡眠 功能中处于休眠状态的线程。 即,如果在进程调用事件的 睡眠 服务之前对事件发出 警醒 操作,那么线程仍将休眠,并等待该事件的下一个 警醒 服务。 这意味着使用此功能的例程必须确保在调用事件的 睡眠 操作之前,不存在由于调用 警醒 服务而可能遗漏事件的计时窗口。
注: 仅当锁定事件或锁定字时,才可以在禁用中断的情况下调用 睡眠 服务。
执行环境
仅可从 流程环境 调用 睡眠 内核服务。
返回值
| 项 | 描述 |
|---|---|
| EVENT_SUCC | 指示操作成功。 |
| EVENT_SIG | 指示已设置 EVENT_SIGRET 标志,并且等待已由信号终止。 |