aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sysdep.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index c52de4ed716..5baf95c92b5 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -737,6 +737,10 @@ sys_subshell ()
737 737
738#ifdef MSDOS 738#ifdef MSDOS
739 pid = 0; 739 pid = 0;
740#if __DJGPP__ > 1
741 save_signal_handlers (saved_handlers);
742 synch_process_alive = 1;
743#endif /* __DJGPP__ > 1 */
740#else 744#else
741 pid = vfork (); 745 pid = vfork ();
742 if (pid == -1) 746 if (pid == -1)
@@ -798,12 +802,17 @@ sys_subshell ()
798#endif /* not MSDOS */ 802#endif /* not MSDOS */
799 } 803 }
800 804
805 /* Do this now if we did not do it before. */
806#if !defined (MSDOS) || __DJGPP__ == 1
801 save_signal_handlers (saved_handlers); 807 save_signal_handlers (saved_handlers);
802 synch_process_alive = 1; 808 synch_process_alive = 1;
809#endif
810
803#ifndef MSDOS 811#ifndef MSDOS
804 wait_for_termination (pid); 812 wait_for_termination (pid);
805#endif 813#endif
806 restore_signal_handlers (saved_handlers); 814 restore_signal_handlers (saved_handlers);
815 synch_process_alive = 0;
807#endif /* !VMS */ 816#endif /* !VMS */
808} 817}
809 818