[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