我正在关注Linux Device Drivers 3rd Edition书中的一个示例:
if (temp = = 0)
wake_up_interruptible_sync(&scull_w_wait); /* awake other uid's */
return 0;
作者指出:
这是一个调用 wake_up_interruptible_sync 有意义的示例。当我们进行唤醒时,我们正要返回用户空间,这是系统的自然调度点。与其在我们进行唤醒时潜在地重新安排,不如只调用“同步”版本并完成我们的工作。
我不明白为什么wake_up_interruptible_sync
在这种情况下使用更好。作者暗示这个调用将阻止重新调度——它确实在调用中阻止了它——但是在返回之后,另一个线程不能在该行wake_up_interruptible_sync
之前控制 CPU吗?return 0
那么,如果一个线程在每次调用之后都可以控制 CPU,那么调用wake_up_interruptible_sync
典型的有什么区别呢?wake_up_interruptible