This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: pthread condition vars - Doh!



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]