[問題] wait_event_interruptible
#define __wait_event_interruptible (wq, condition, ret) \
do { \
DEFINE_WAIT (__wait); \
for (;;) { \
prepare_to_wait (&wq, &__wait, TASK_INTERRUPTIBLE); \
if (condition) \
break; \
if (!signal_pending(current)) { \
schedule (); \
continue; \
} \
ret = -ERESTARTSYS; \
break; \
} \
finish_wait(&wq, &__wait); \
} while (0)
-----------------------------------------------------------------
以上是wait_event_interruptible的原型,
這看起來是個無限迴圈,如果是處於單CPU
上的環境,而linux kernel是不可被搶先
(non-preemptive)的,所以迴圈會一直執行下去?
什麼時候cpu的控制權才會交出去?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.108.65
推
04/30 00:55, , 1F
04/30 00:55, 1F
推
05/01 08:33, , 2F
05/01 08:33, 2F
推
06/10 23:06, , 3F
06/10 23:06, 3F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章