看完源码后,
https://github.com/torvalds/linux/blob/ff1176468d368232b684f75e82563369208bc371/fs/io_uring.c#L6907
我对使用内核端轮询时的唤醒感到困惑,
用户线程:A. update-tail,然后 B. check-need-wakeup-flag
内核线程:C. 设置唤醒标志 D. 检查尾部
如果用户线程看到顺序: ABC ,内核线程看到顺序 CDA ,会导致丢失唤醒吗?
看完源码后,
https://github.com/torvalds/linux/blob/ff1176468d368232b684f75e82563369208bc371/fs/io_uring.c#L6907
我对使用内核端轮询时的唤醒感到困惑,
用户线程:A. update-tail,然后 B. check-need-wakeup-flag
内核线程:C. 设置唤醒标志 D. 检查尾部
如果用户线程看到顺序: ABC ,内核线程看到顺序 CDA ,会导致丢失唤醒吗?