* cygheap.cc (dup_now): New function.
(cygheap_setup_for_child): Accept new argument controlling whether to delay copying of cygheap to shared memory region. (cygheap_setup_for_child_cleanup): Accept new arguments controlling whether to copy cygheap at this point. * cygheap.h: Reflect above changes. * fork.cc (fork_parent): Break copying of cygheap into two parts when fork_fixup is required so that the child can see the parent's changes. (vfork): Do stack cleanup prior to forcing a fork error. * spawn.cc (spawn_guts): Ditto.
This commit is contained in:
@@ -177,8 +177,8 @@ extern init_cygheap *cygheap;
|
||||
extern void *cygheap_max;
|
||||
|
||||
class child_info;
|
||||
void __stdcall cygheap_setup_for_child (child_info *ci) __attribute__ ((regparm(1)));
|
||||
void __stdcall cygheap_setup_for_child_cleanup (child_info *ci) __attribute__ ((regparm(1)));
|
||||
void *__stdcall cygheap_setup_for_child (child_info *ci, bool dup_later) __attribute__ ((regparm(2)));
|
||||
void __stdcall cygheap_setup_for_child_cleanup (void *, child_info *, bool) __attribute__ ((regparm(3)));
|
||||
void __stdcall cygheap_fixup_in_child (child_info *, bool);
|
||||
extern "C" {
|
||||
void __stdcall cfree (void *) __attribute__ ((regparm(1)));
|
||||
|
Reference in New Issue
Block a user