* fork.cc (fork_child): Fixup SYSV IPC shared memory before fixing
up fdtab.
This commit is contained in:
parent
fefc73a0c7
commit
b6e69d53f6
|
@ -1,3 +1,8 @@
|
||||||
|
2005-04-01 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fork.cc (fork_child): Fixup SYSV IPC shared memory before fixing
|
||||||
|
up fdtab.
|
||||||
|
|
||||||
2005-03-31 Corinna Vinschen <corinna@vinschen.de>
|
2005-03-31 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* gentls_offsets: Add '-m32' flag to native compiler call to satisfy
|
* gentls_offsets: Add '-m32' flag to native compiler call to satisfy
|
||||||
|
|
|
@ -199,6 +199,17 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls)
|
||||||
if (fixup_mmaps_after_fork (hParent))
|
if (fixup_mmaps_after_fork (hParent))
|
||||||
api_fatal ("recreate_mmaps_after_fork_failed");
|
api_fatal ("recreate_mmaps_after_fork_failed");
|
||||||
|
|
||||||
|
#ifdef USE_SERVER
|
||||||
|
/* Incredible but true: If we use sockets and SYSV IPC shared memory,
|
||||||
|
there's a good chance that a duplicated socket in the child occupies
|
||||||
|
memory which is needed to duplicate shared memory from the parent
|
||||||
|
process, if the shared memory hasn't been duplicated already.
|
||||||
|
The same goes very likely for "normal" mmap shared memory, too, but
|
||||||
|
with SYSV IPC it was the first time observed. So, *never* fixup
|
||||||
|
fdtab before fixing up shared memory. */
|
||||||
|
if (fixup_shms_after_fork ())
|
||||||
|
api_fatal ("recreate_shm areas after fork failed");
|
||||||
|
#endif
|
||||||
|
|
||||||
MALLOC_CHECK;
|
MALLOC_CHECK;
|
||||||
|
|
||||||
|
@ -226,11 +237,6 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls)
|
||||||
_my_tls.fixup_after_fork ();
|
_my_tls.fixup_after_fork ();
|
||||||
sigproc_init ();
|
sigproc_init ();
|
||||||
|
|
||||||
#ifdef USE_SERVER
|
|
||||||
if (fixup_shms_after_fork ())
|
|
||||||
api_fatal ("recreate_shm areas after fork failed");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pthread::atforkchild ();
|
pthread::atforkchild ();
|
||||||
fixup_timers_after_fork ();
|
fixup_timers_after_fork ();
|
||||||
fixup_hooks_after_fork ();
|
fixup_hooks_after_fork ();
|
||||||
|
|
Loading…
Reference in New Issue