This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
winsup/cygwin ChangeLog dcrt0.cc fork.cc threa ...
- From: cgf at cygwin dot com
- To: cygwin-cvs at cygwin dot com
- Date: 22 Feb 2007 12:34:56 -0000
- Subject: winsup/cygwin ChangeLog dcrt0.cc fork.cc threa ...
CVSROOT: /cvs/uberbaum
Module name: winsup
Changes by: cgf@sourceware.org 2007-02-22 12:34:55
Modified files:
cygwin : ChangeLog dcrt0.cc fork.cc thread.cc thread.h
Log message:
* dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of guard test.
Increase size of stack reserved and increase size before the current stack
pointer. Use pointers when doing arithmetic.
(dll_crt0_1): Initialize exception handler when we notice we're the child of a
fork from non-main thread.
* fork.cc (frok::parent): Make argument volatile.
(frok::child): Ditto.
(lock_signals): New class.
(lock_pthread): Ditto.
(hold_everhthing): Ditto.
(frok::parent): Move atforkprepare and atforkparent to lock_pthread class.
(fork): Make ischild boolean. Use hold_everything variable within limited
scope to set various mutexes in such a way as to avoid deadlocks.
* thread.h (pthread_mutex::tid): New variable, active when debugging for
tracking thread id of owner.
(pthread_mutex::set_owner): Set tid when debugging.
* thread.cc (pthread_mutex::pthread_mutex): Clear tid.
(pthread_mutex::_unlock): Ditto when unlocking.
(pthread_mutex::fixup_after_fork): Set tid to special value after forking since
owner is unknown.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/ChangeLog.diff?cvsroot=uberbaum&r1=1.3763&r2=1.3764
http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/dcrt0.cc.diff?cvsroot=uberbaum&r1=1.317&r2=1.318
http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/fork.cc.diff?cvsroot=uberbaum&r1=1.189&r2=1.190
http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/thread.cc.diff?cvsroot=uberbaum&r1=1.200&r2=1.201
http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/thread.h.diff?cvsroot=uberbaum&r1=1.104&r2=1.105