Messages in this thread | | | Date | Thu, 13 Feb 2003 19:35:43 -0800 (PST) | From | William Chow <> | Subject | missing a wakeup from pending signal |
| |
I am finding that my kernel thread will occasionally fail to wake up eventhough it has a signal pending. The thread is calling wait_event_interruptible and waiting for SIGIO (from the sg driver). I only see it fail to wake up when performing intensive sg activity. From kdb, the task shows the signal was delivered (sigpending==1 and pending.signal.sig[0]==0x10000000).
So, I was just wondering if anyone was aware of a fix (I'm using 2.4.18 on i386). A google search failed to turn up anything obvious. My code is pretty basic stuff but here the wait loop just in case:
for (;;) { gotsig = wait_event_interruptible(); if (gotsig) { sigemptyset(&set); spin_lock_irq(¤t->sigmask_lock); signum = dequeue_signal(&set, &info); spin_unlock_irq(¤t->sigmask_lock); if (signum != SIGIO) break; process_io(); } }
Please CC me in the response. Thanks in advance.
__________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |