This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: Figured out how to reproduce vfork/rsync bug!
Ironically enough, the only significant thing checked in on July 17,
and thus the thing which caused this bug to start happening, is this:
* 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.
Look familiar?
I think I'll try the patch that cgf just sent out and see if it makes
this problem go away.
It will be very amusing if we discover that the bug I'm encountering
is the same as Egor's.
jik