diff --git a/src/unix/tty.c b/src/unix/tty.c index b86107202..ae7367933 100644 --- a/src/unix/tty.c +++ b/src/unix/tty.c @@ -52,7 +52,7 @@ */ static int isreallyatty(int file) { int rc; - + rc = !ioctl(file, TXISATTY + 0x81, NULL); if (!rc && errno != EBADF) errno = ENOTTY; @@ -333,8 +333,8 @@ int uv_tty_set_mode(uv_tty_t* tty, uv_tty_mode_t mode) { UNREACHABLE(); } - /* Apply changes after draining */ - rc = uv__tcsetattr(fd, TCSADRAIN, &tmp); + /* Apply changes now, to avoid blocking. */ + rc = uv__tcsetattr(fd, TCSANOW, &tmp); if (rc == 0) tty->mode = mode;