- exitTimer();
-
- /* reset the standard file descriptors to blocking mode */
- resetNonBlockingFd(0);
- resetNonBlockingFd(1);
- resetNonBlockingFd(2);
-
-#if HAVE_TERMIOS_H
- // Reset the terminal settings on the standard file descriptors,
- // if we changed them. See System.Posix.Internals.tcSetAttr for
- // more details, including the reason we termporarily disable
- // SIGTTOU here.
- {
- int fd;
- sigset_t sigset, old_sigset;
- sigemptyset(&sigset);
- sigaddset(&sigset, SIGTTOU);
- sigprocmask(SIG_BLOCK, &sigset, &old_sigset);
- for (fd = 0; fd <= 2; fd++) {
- struct termios* ts = (struct termios*)__hscore_get_saved_termios(fd);
- if (ts != NULL) {
- tcsetattr(fd,TCSANOW,ts);
- }
- }
- sigprocmask(SIG_SETMASK, &old_sigset, NULL);
- }
+ exitTimer(wait_foreign);
+
+ // set the terminal settings back to what they were
+#if !defined(mingw32_HOST_OS)
+ resetTerminalSettings();