Christopher Faylor 39fc0d36ae * 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.
2007-02-22 12:34:55 +00:00
..
2001-12-20 03:03:59 +00:00
2006-05-24 16:59:03 +00:00
2006-03-01 20:20:22 +00:00
2004-12-05 02:30:20 +00:00
2001-10-28 23:05:49 +00:00
2001-10-28 23:05:49 +00:00
2001-10-28 23:05:49 +00:00
2002-01-01 16:49:52 +00:00
2004-01-20 03:11:39 +00:00
2006-01-16 19:52:21 +00:00
2007-01-03 11:14:53 +00:00
2006-05-24 16:59:03 +00:00
2005-09-29 14:28:22 +00:00
2005-03-23 17:11:24 +00:00
2006-11-27 12:59:59 +00:00
2001-09-11 20:01:02 +00:00
2007-02-20 15:48:04 +00:00
2004-05-12 16:21:18 +00:00
2006-02-15 22:11:13 +00:00
2006-07-17 19:30:30 +00:00
2005-09-28 19:22:25 +00:00
2006-07-17 19:30:30 +00:00
2001-09-11 20:01:02 +00:00
2006-03-01 20:20:22 +00:00
2007-02-20 00:16:18 +00:00
2000-02-17 19:38:33 +00:00
2006-07-06 17:16:37 +00:00
2001-10-28 23:05:49 +00:00
.
2002-05-04 04:30:57 +00:00
2004-03-14 05:35:19 +00:00
2002-02-11 02:25:42 +00:00
2004-12-05 02:30:20 +00:00
2005-11-18 17:48:23 +00:00
2004-02-04 22:40:50 +00:00
2005-05-02 03:50:11 +00:00
2007-02-20 00:16:18 +00:00
2007-02-20 15:48:04 +00:00
2003-07-07 05:32:24 +00:00
2000-08-18 19:51:02 +00:00
2007-02-20 00:16:18 +00:00
2007-02-20 00:16:18 +00:00
2007-02-20 00:16:18 +00:00
2004-12-27 19:03:56 +00:00
2007-02-20 00:16:18 +00:00
2004-12-27 19:03:56 +00:00
2006-01-02 02:57:54 +00:00
2003-03-09 20:31:07 +00:00
2006-05-28 15:50:14 +00:00
2006-02-20 02:06:37 +00:00
2006-07-17 19:30:30 +00:00