* dcrt0.cc (dll_crt0_1): Comment assumption.
* exceptions.cc (sigpacket::setup_handler): Avoid sending signals during fork processing.
This commit is contained in:
parent
3b1a8c572f
commit
93ff4bbee0
@ -1,3 +1,9 @@
|
|||||||
|
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
|
* dcrt0.cc (dll_crt0_1): Comment assumption.
|
||||||
|
* exceptions.cc (sigpacket::setup_handler): Avoid sending signals
|
||||||
|
during fork processing.
|
||||||
|
|
||||||
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
|
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
* dcrt0.cc (dll_crt0_1): Flag that we are working "incyg". Handle any
|
* dcrt0.cc (dll_crt0_1): Flag that we are working "incyg". Handle any
|
||||||
|
@ -891,6 +891,8 @@ dll_crt0_1 (void *)
|
|||||||
_tlstop = (char *) fork_info->stacktop;
|
_tlstop = (char *) fork_info->stacktop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Not resetting _my_tls.incyg here because presumably fork will overwrite
|
||||||
|
it with the value of the forker and all will be good. */
|
||||||
longjmp (fork_info->jmp, true);
|
longjmp (fork_info->jmp, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -789,6 +789,10 @@ sigpacket::setup_handler (void *handler, struct sigaction& siga, _cygtls *tls)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (in_forkee)
|
||||||
|
yield (); /* Won't be able to send signals until we're finished
|
||||||
|
processing fork(). */
|
||||||
|
|
||||||
for (int n = 0; n < CALL_HANDLER_RETRY_OUTER; n++)
|
for (int n = 0; n < CALL_HANDLER_RETRY_OUTER; n++)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < CALL_HANDLER_RETRY_INNER; i++)
|
for (int i = 0; i < CALL_HANDLER_RETRY_INNER; i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user