Marcus Brinkmann <[EMAIL PROTECTED]> writes:

> On Sun, Nov 17, 2002 at 12:24:03PM -0500, Neal H. Walfield wrote:
> > > Is there a race condition before __pthread_block? We can receive
> > > pthread_broadcast before we have blocked.
> > > If so, how do we solve that? 
> > 
> > As I said in a previous email, a __pthread_wakeup queues a message on
> > the waiter's port (using mach_msg).  If this happens before the waiter
> > calls does a receive on his port (i.e. via __pthread_block calling
> > mach_msg), then it will be there when the waiter arrives.  If it
> > happens after the waiter calls mach_msg then the waiter gets the
> > message.  Thus, no race.
> 
> What about non-Mach backends?  I would feel better about an
> internal-interface-guarantee argument rather than an implementation
> argument.

We need a reliable wakeup/block mechanism.  In Mach, the one Neal
describes is fine.  If we need a different one, so be it.  Regardless,
the wakeup and block routines should of course guarantee the behavior
that Neal describes.


_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to