Re: wake_up from interrupt handler

From: Rui Sousa (rui.sousa@laposte.net)
Date: Mon Oct 07 2002 - 17:52:06 EST


On Mon, 7 Oct 2002, Amol Lad wrote:

> Hi,
> I have a kernel thread which did add_to_wait_queue()
> to wait for an event.
> The event for which above thread is waiting occurs in
> an interrupt handler that calls wake_up() to wake the
> above thread.
> Now I am faced with a 'lost wakeup' problem, in which
> the
> kernel thread checks whether event occured, he finds
> it to be 'not-occured' but before calling
> add_to_wait_queue(), interrupt handler detects that
> the event has occured and calls wake_up().
> My thread sleeps forever.

I believe the solution is to simply add_to_wait_queue()
_before_ checking the condition. If the signal arrives between
checking the condition and going to sleep your task will be
immediately awoken.

Rui Sousa

> I know some new APIs are provided in recent 2.5
> kernel, but how to avoid this in 2.4.18
>
> please CC me
>
> Thanks
> Amol
>
>
> __________________________________________________
> Do you Yahoo!?
> Faith Hill - Exclusive Performances, Videos & More
> http://faith.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/
>

-
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/



This archive was generated by hypermail 2b29 : Mon Oct 07 2002 - 22:01:01 EST