* fork.cc (fork_child): Call fixup_mmaps_after_fork() before
closing parent process handle. Call fixup_mmaps_after_fork() with parent process handle as parameter. * mmap.cc (mmap_record::access): New method. (fixup_mmaps_after_fork): Take process handle as parameter. In case of FILE_MAP_COPY access, copy valid memory regions to child. * pinfo.h (fixup_mmaps_after_fork): Change prototype accordingly.
This commit is contained in:
@ -296,13 +296,13 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls)
|
||||
sync_with_parent ("loaded dlls", TRUE);
|
||||
}
|
||||
|
||||
if (fixup_mmaps_after_fork (hParent))
|
||||
api_fatal ("recreate_mmaps_after_fork_failed");
|
||||
|
||||
ForceCloseHandle (hParent);
|
||||
(void) ForceCloseHandle (child_proc_info->subproc_ready);
|
||||
(void) ForceCloseHandle (child_proc_info->forker_finished);
|
||||
|
||||
if (fixup_mmaps_after_fork ())
|
||||
api_fatal ("recreate_mmaps_after_fork_failed");
|
||||
|
||||
if (fixup_shms_after_fork ())
|
||||
api_fatal ("recreate_shm areas after fork failed");
|
||||
|
||||
|
Reference in New Issue
Block a user