Messages in this thread | | | From | (Linus Torvalds) | Subject | Re: 2.4.6 possible problem | Date | Tue, 17 Jul 2001 19:24:23 +0000 (UTC) |
| |
In article <Pine.LNX.3.95.1010717103652.1430A-100000@chaos.analogic.com>, Richard B. Johnson <root@chaos.analogic.com> wrote: > > ticks = 1 * HZ; /* For 1 second */ > while((ticks = interruptible_sleep_on_timeout(&wqhead, ticks)) > 0) > ;
Don't do this.
Imagine what happens if a signal comes in and wakes you up? The signal will continue to be pending, which will make your "sleep loop" be a busy loop as you can never go to sleep interruptibly with a pending signal.
In short: if you have to wait for a certain time or for a certain event, you MUST NOT USE a interruptible sleep.
If it is ok to return early due to signals or similar (which is nice - you can allow people to kill the process), then you use an interruptible sleep, but then you mustn't have the above kind of loop.
Linus - 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/
| |