gpt4 book ai didi

linux - 如何知道 schedule() 调用何时因信号返回?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:48 26 4
gpt4 key购买 nike

在某些 PCI 硬件的设备驱动程序中,我有一个 ioctl 调用等待 PCI 总线上的传入中断。使用 wait_queue_head_t,我通过调用 schedule() 使任务进入休眠状态。

然后,当 PCI 总线上出现中断时,irq_handler 函数会唤醒此任务。一切似乎都正常工作。

我的问题是如何区分 schedule() 调用返回是因为我的 irq_handler 函数唤醒了它,还是因为发送了一些信号?

我是否必须通过 irq_handler 函数中的标志自行处理?

最佳答案

schedule 调用之后,类似这样的事情:

if (signal_pending(current)) {
retval = -EINTR;

关于linux - 如何知道 schedule() 调用何时因信号返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1832033/

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