pthread condition vars - Doh!

Robert Collins robert.collins@itdomain.com.au
Wed Apr 18 17:22:00 GMT 2001


----- Original Message -----
From: "Christopher Faylor" <cgf@redhat.com>
To: <cygwin-developers@cygwin.com>
Sent: Thursday, April 19, 2001 10:19 AM
Subject: Re: pthread condition vars - Doh!


> On Thu, Apr 19, 2001 at 10:05:55AM +1000, Robert Collins wrote:
> >----- Original Message -----
> >From: "Christopher Faylor" <cgf@redhat.com>
> >To: <cygwin-developers@cygwin.com>
> >Sent: Thursday, April 19, 2001 9:51 AM
> >Subject: Re: pthread condition vars - Doh!
> >
> >
> >> On Thu, Apr 19, 2001 at 09:46:52AM +1000, Robert Collins wrote:
> >> >I've just found out that SignalObjectAndWait, which I use in
several
> >> >locations in the pthreads code, is not available on 9x platforms.
> >> >SignalObjectAndWait is the appropriate function to prevent races
for
> >> >emulated posix objects that involve more than 1 win32 object.
> >>
> >> Yep.  I have long wanted a SingalObjectAndWait for Cygwin's signal
> >> handling but I couldn't use it for this reason.  I missed that you
> >> were using this in your new code.
> >>
> >> I assume that you'll be providing some kind of wrapper to handle
> >> this?
> >
> >Nice try :]. Long term I hope so. Short term if(95){race}else {don't
> >race}.
>
> I just meant that you'd provide a wrapper that did something like:
>
> signal_object_and_wait (blah)
> {
>   DWORD res;
>   if (os_being_run == winNT)
>     res = SignalObjectAndWait (blah)
>   else
>     {
>       SetEvent (or whatever);
>       res = WaitForSingleObject ();
>     }
>
>   return res;
> }

Yeah, long term. I'm not going to create such a wrapper until the
problems solved for at least 2 different object combinations. Then I'll
look for common elements and see what arises.

> >Which given the win32 scheduler should pretty much guarantee no races
> >(particularly if the pri is above the available priority for any
other
> >cygwin threads), and as we are blocked, we won't deadlock. I've only
> >just started thinking about this - this is really verbal rambling..
>
> I came across a web site years ago that claimed to be able to do this
> in a non-raceable fashion -- or at least I dreamed I did.  I never
have been
> able to find it again.

I'm happy to contribute money for hypnosis :]

Rob

> cgf
>



More information about the Cygwin-developers mailing list