gpt4 book ai didi

linux-kernel - 内核等待队列如何解决 "lost wake up"?

转载 作者:行者123 更新时间:2023-12-04 05:32:06 26 4
gpt4 key购买 nike

我读了Linux Kernel Development这本书,对 sleep 和唤醒部分给出的例子有一些疑问。

DEFINE_WAIT(wait);
add_wait_queue(q, &wait);
while (!condition) {
prepare_to_wait(&q, &wait, TASK_INTERRUPTIBLE);
if (signal_pending(current))
/* handle signal */
schedule();
}
finish_wait(&q, &wait);

如果 wake_up 恰好在 prepare_to_wait() 之前和 while 条件之后出现,会发生什么情况? wake_up 会丢失吗?

最佳答案

是的,唤醒会丢失。

prepare_to_wait() 必须在检查条件之前调用。(这是您将在实际代码中看到的内容。)

关于linux-kernel - 内核等待队列如何解决 "lost wake up"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866386/

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