[Gc] [PATCH] define HANDLE_FORK on unix platforms with pthreads
wingo at pobox.com
Tue Feb 21 02:37:43 PST 2012
On Tue 21 Feb 2012 10:36, Andy Wingo <wingo at pobox.com> writes:
> On Tue 21 Feb 2012 00:16, "Boehm, Hans" <hans.boehm at hp.com> writes:
>> I believe the reason this was not enabled by default is that Posix
>> doesn't allow calling memory allocation functions such as malloc()
>> between fork and exec either. Thus AFAIK, this is a workaround for a
>> problem not introduced by the garbage collector.
> Can you cite this? I am having a hard time finding this one.
I found it:
A process shall be created with a single thread. If a multi-threaded
process calls fork(), the new process shall contain a replica of the
calling thread and its entire address space, possibly including the
states of mutexes and other resources. Consequently, to avoid errors,
the child process may only execute async-signal-safe operations until
such time as one of the exec functions is called.
More information about the Gc