aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/dcrt0.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2022-05-03 15:16:18 +0200
committerCorinna Vinschen <corinna@vinschen.de>2022-05-03 15:16:18 +0200
commit5a6de512ab5d46f7a0f019e7345e800a0a274a62 (patch)
tree5a51a03bdeda43355f606b4f1e3032cbee09d0e7 /winsup/cygwin/dcrt0.cc
parent28970dae34522059e094eb7db466404facb09460 (diff)
downloadnewlib-5a6de512ab5d46f7a0f019e7345e800a0a274a62.zip
newlib-5a6de512ab5d46f7a0f019e7345e800a0a274a62.tar.gz
newlib-5a6de512ab5d46f7a0f019e7345e800a0a274a62.tar.bz2
Cygwin: always add sigmask to child info
Even after fork, we might need the parent sigmask without having access to the real _main_tls. There's a short time at process startup, when _main_tls points to the system-allocated stack, but wait_sig is already running. If we can't lock _main_tls, because find_tls can't find it yet, we now access the parent's sigmask via child_info. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r--winsup/cygwin/dcrt0.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index dee8482..8869cbd 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -845,7 +845,7 @@ dll_crt0_1 (void *)
_my_tls.incyg++;
/* Inherit "parent" exec'ed process sigmask */
if (spawn_info && !in_forkee)
- _my_tls.sigmask = spawn_info->moreinfo->sigmask;
+ _my_tls.sigmask = spawn_info->sigmask;
if (dynamically_loaded)
sigproc_init ();