Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Message-ID: <02c501c0c866$cd0c03f0$0200a8c0@lifelesswks> From: "Robert Collins" To: References: <025701c0c861$e40e01c0$0200a8c0 AT lifelesswks> <20010418195107 DOT B6060 AT redhat DOT com> <029401c0c864$94e515e0$0200a8c0 AT lifelesswks> <20010418201957 DOT D6403 AT redhat DOT com> Subject: Re: pthread condition vars - Doh! Date: Thu, 19 Apr 2001 10:22:20 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-OriginalArrivalTime: 19 Apr 2001 00:14:51.0938 (UTC) FILETIME=[C0DDB020:01C0C865] ----- Original Message ----- From: "Christopher Faylor" To: 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" > >To: > >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 >