[tpfaff@cygwin.com: src/winsup/cygwin ChangeLog thread.cc thread.h]

Thomas Pfaff tpfaff@gmx.net
Tue Dec 2 07:30:00 GMT 2003


Corinna Vinschen wrote:
> ----- Forwarded message from tpfaff@cygwin.com -----
> 
>>Date: 1 Dec 2003 22:10:57 -0000
>>From: tpfaff@cygwin.com
>>Subject: src/winsup/cygwin ChangeLog thread.cc thread.h
>>To: cygwin-cvs@cygwin.com
>>
>>CVSROOT:	/cvs/src
>>Module name:	src
>>Changes by:	tpfaff@sourceware.org	2003-12-01 22:10:57
>>
>>Modified files:
>>	winsup/cygwin  : ChangeLog thread.cc thread.h 
>>
>>Log message:
>>	* thread.cc (pthread_rwlock::add_reader): Remove mx parameter for
>>	List_insert call.
>>	(pthread::prepare): Ensure race safeness when adding function
>>	pointers to atfork lists by using List_insert.
>>	* thread.h (List_insert): Use InterlockedCompareExchangePointer to
>>	ensure race safeness without using a mutex.
>>	(List_remove): Use InterlockedCompareExchangePointer to
>>	ensure race safeness with List_insert.
>>	(List::insert): Remove mx parameter for	List_insert call.
>>
>>Patches:
>>http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/ChangeLog.diff?cvsroot=src&r1=1.2201&r2=1.2202
>>http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/thread.cc.diff?cvsroot=src&r1=1.148&r2=1.149
>>http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/thread.h.diff?cvsroot=src&r1=1.78&r2=1.79
> 
> 
> ----- End forwarded message -----
> 
> Doesn't this patch result in not being able to run Cygwin on Win 95
> anymore?  InterlockedCompareExchangePointer is only available since
> 98 according to MSDN.  Or did we leave 95 already behind somewhere
> on the way?
> 

Not at all.

The whole interlocked stuff is inline assembled in winbase.h .
The only thing that is lost some time ago is the good old i386 (since it 
has no xadd/cmpxchg instructions).

Thomas

P.S.: The mutex code is using InterlockedCompareExchange over one year 
now and nobody complained, but i am still waiting for the one who is 
using cygwin on an i386.





More information about the Cygwin-developers mailing list