gpt4 book ai didi

linux - wait_event_interruptible 代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:53 25 4
gpt4 key购买 nike

我在哪里可以找到内核树中 wait_event_interruptible 的代码。我能找到的是 wait_event_interruptible 在 .但是我找不到代码。请帮帮我。

考虑一个因 wait_event_interruptible 进入休眠状态的进程。假设现在有一个中断并且中断处理程序唤醒(wake_up_event_interruptible)休眠进程。如果 wait_event_interruptible 中给出的条件为真,则进程成功唤醒?

谢谢

最佳答案

它在include/linux/wait.h中:

#define wait_event_interruptible(wq, condition)               \
({ \
int __ret = 0; \
if (!(condition)) \
__wait_event_interruptible(wq, condition, __ret); \
__ret; \
})

...

#define __wait_event_interruptible(wq, condition, ret)        \
do { \
DEFINE_WAIT(__wait); \
\
for (;;) { \
prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE); \
if (condition) \
break; \
if (!signal_pending(current)) { \
schedule(); \
continue; \
} \
ret = -ERESTARTSYS; \
break; \
} \
finish_wait(&wq, &__wait); \
} while (0)

关于linux - wait_event_interruptible 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com