linux-kernel – 如何使用wake_up_interruptible

linux-kernel – 如何使用wake_up_interruptible,第1张

概述我想知道如果它返回void,我怎么能使用wake_up_interruptible: http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/wait.h#L161(_wake_up函数返回void).例如,down_interruptible函数返回int: http://www.cs.fsu.edu/~b 我想知道如果它返回voID,我怎么能使用wake_up_interruptible: http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/wait.h#L161(_wake_up函数返回voID).例如,down_interruptible函数返回int: http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/kernel/semaphore.c#L75这允许编写这样的代码,例如:
if ( down_interruptible(&dev->sem) )    return -ERESTARTSYS;// continue: down_interruptible succeeded

当我调用wake_up_interruptible并且它被中断时,如果它返回voID,我怎么知道呢?

解决方法 我想正常的使用场景是,在一个线程中:
for (;;) {   wait_event_interruptible(wait_queue,condition);   /* Some processing */}

并从其他一些线程:

if (something_happened)   wake_up_interruptible(wait_queue);

这将导致一个进程从wait_queue进入,该进程处于TASK_INTERRUPTIBLE状态,被唤醒并评估条件

看一些更多的例子here,有点过时的位给出了一个想法

总结

以上是内存溢出为你收集整理的linux-kernel – 如何使用wake_up_interruptible全部内容,希望文章能够帮你解决linux-kernel – 如何使用wake_up_interruptible所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1049356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存