Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r--winsup/cygwin/fork.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 13cccba3e..4f481b0f8 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -244,15 +244,15 @@ frok::child (void *)
ForceCloseHandle1 (fork_info->forker_finished, forker_finished);
- _my_tls.fixup_after_fork ();
sigproc_init ();
pthread::atforkchild ();
fixup_timers_after_fork ();
- fixup_hooks_after_fork ();
cygbench ("fork-child");
ld_preload ();
+ fixup_hooks_after_fork ();
cygwin_finished_initializing = true;
+ _my_tls.fixup_after_fork ();
return 0;
}
@@ -562,7 +562,10 @@ fork ()
grouped.first_dll = NULL;
grouped.load_dlls = 0;
+ int res;
void *esp;
+ int ischild;
+
__asm__ volatile ("movl %%esp,%0": "=r" (esp));
myself->set_has_pgid_children ();
@@ -576,8 +579,7 @@ fork ()
}
sig_send (NULL, __SIGHOLD);
- int res;
- int ischild = setjmp (grouped.ch.jmp);
+ ischild = setjmp (grouped.ch.jmp);
if (!ischild)
res = grouped.parent (esp);
else