Fix Cygwin support to handle fork() properly
authorIvan Maidanski <ivmai@mail.ru>
Fri, 24 Feb 2012 10:34:34 +0000 (14:34 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 24 Feb 2012 10:34:34 +0000 (14:34 +0400)
commit11e95a1dfdd8ac1ed729d822a2968cb389e253d1
treee768dc34472cb975e55940b4eb61c06693e18cd3
parentee0301906ae01bdd6d3a0fb4105c8a45d6bfae82
Fix Cygwin support to handle fork() properly

* include/private/gcconfig.h (HANDLE_FORK): Define also for Cygwin
(but not for win32-pthreads and not if Win32 memory allocation used).
* win32_threads.c: Include unistd.h if HANDLE_FORK (for
pthread_atfork).
* win32_threads.c (GC_wait_for_gc_completion): Add wait_for_all
argument.
* win32_threads.c (GC_unregister_my_thread, GC_thread_exit_proc): Pass
FALSE ("wait_for_all" argument) to GC_wait_for_gc_completion.
* win32_threads.c (GC_remove_all_threads_but_me, GC_fork_prepare_proc,
GC_fork_parent_proc, GC_fork_child_proc): New functions (similar to
that in pthread_support.c) if HANDLE_FORK.
* win32_threads.c (GC_thr_init): Invoke pthread_atfork if HANDLE_FORK.
include/private/gcconfig.h
win32_threads.c