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]
Other format: [Raw text]

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


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.




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