linux-mips
[Top] [All Lists]

Re: Wait queue problem

To: Andre.Messerschmidt@infineon.com
Subject: Re: Wait queue problem
From: Ralf Baechle <ralf@oss.sgi.com>
Date: Thu, 18 Apr 2002 18:16:53 -0700
Cc: linux-mips@oss.sgi.com
In-reply-to: <86048F07C015D311864100902760F1DD01B5E8DD@dlfw003a.dus.infineon.com>; from Andre.Messerschmidt@infineon.com on Wed, Apr 17, 2002 at 12:03:19PM +0200
References: <86048F07C015D311864100902760F1DD01B5E8DD@dlfw003a.dus.infineon.com>
Sender: owner-linux-mips@oss.sgi.com
User-agent: Mutt/1.2.5.1i
On Wed, Apr 17, 2002 at 12:03:19PM +0200, Andre.Messerschmidt@infineon.com 
wrote:

> Does anybody else have problems using wait queues in a 2.4.5 MIPS kernel?
> When I try to wake up a process from an interrupt it won't start to execute.
> It always waits for the timeout before resuming work. 
> In principal my code look like this:
> 
> wait_queue_head_t wq;
> 
> foo() {
> init_waitqueue_head(&wq);
> interruptible_sleep_on_timeout(&wq,10*HZ);
> }
> 
> foo_int() {
> wake_up_interuptible(&wq);
> }
> 
> Am I missing something? 

A bad race condition in that code.  If foo_int is called before your process
had a chance to get to sleep it'll never be woken before the timeout.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>