* child_info.h: Bump magic number.

(class child_info): Add an element.
* cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area.
(cygheap_fixup_in_child): Map cygwin heap, passed from parent via shared memory
into correct address.
(cygheap_setup_for_child): New function.
* cygheap.h: Declare new functions.
* dcrt0.cc (dll_crt0_1): Accomodate new cygheap_fixup_in_child arguments.
Avoid protecting subproc_ready unless it is spawn/nowait.
* fork.cc (fork_parent): Use new cygheap_setup_for_child function to setup
cygwin heap info.  Close passed cygheap shared memory handle.
* spawn.cc (spawn_guts): Ditto.  Also, reorganize to avoid synchronization
between parent and child in non-P_OVERLAY case.
* sigproc.cc (wait_sig): Only signal subproc_ready when execing.
This commit is contained in:
Christopher Faylor
2001-07-17 03:41:52 +00:00
parent 30640285c3
commit 5457dfcb81
9 changed files with 180 additions and 132 deletions

View File

@@ -12,7 +12,7 @@ details. */
enum
{
PROC_MAGIC = 0xaf0ff000,
PROC_MAGIC = 0xaf10f000,
PROC_FORK = PROC_MAGIC + 1,
PROC_EXEC = PROC_MAGIC + 2,
PROC_SPAWN = PROC_MAGIC + 3,
@@ -39,6 +39,7 @@ public:
HANDLE pppid_handle;
init_cygheap *cygheap;
void *cygheap_max;
HANDLE cygheap_h;
};
class child_info_fork: public child_info