* 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:
Corinna Vinschen
2002-03-11 17:57:22 +00:00
parent eabb48d53d
commit 713fb38b7c
4 changed files with 39 additions and 5 deletions

View File

@ -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");