Messages in this thread | | | Date | Wed, 26 Jun 2002 16:38:08 +0200 | From | Nicolas Bougues <> | Subject | Re: Problems with wait queues |
| |
Richard,
On Wed, Jun 26, 2002 at 10:17:45AM -0400, Richard B. Johnson wrote: > > I am sure that you can have things look correct as well as run > properly. However, you didn't show us the code.
It's quite large, and I didn't think I was "syntactically" wrong. But the code is available, if somebody wants to have a look.
> You need to do something like: > > interruptible_sleep_on(&semaphore); > > while your wake-up occurs with: > > wake_up_interruptible(&semaphore); >
That's what I do, although I use the wait_event_interruptible macro instead of interruptible_sleep_on.
> > Both ways (and others) will look fine with `top` and will sleep > properly. >
If we're talking about %CPU times, right. If we're talking loadavg, no. As I said in my previous message, I think it's because my wake_up_interruptible() is *always* triggered during the timer interrupt, just before the scheduler runs (new data is available every 100th/sec).
I'm not sure, but I think that the loadavg is computed at the beginning of each scheduler run, thus, my task always looks "running" at this time, even though it just runs for a few microseconds each time.
-- Nicolas Bougues
- 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/
| |