aboutsummaryrefslogtreecommitdiff
path: root/chardev/char-stdio.c
diff options
context:
space:
mode:
Diffstat (limited to 'chardev/char-stdio.c')
-rw-r--r--chardev/char-stdio.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index 48db8d2..2568164 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -107,18 +107,20 @@ static void qemu_chr_open_stdio(Chardev *chr,
old_fd0_flags = fcntl(0, F_GETFL);
old_fd1_flags = fcntl(1, F_GETFL);
tcgetattr(0, &oldtty);
- if (!g_unix_set_fd_nonblocking(0, true, NULL)) {
- error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ if (!qemu_set_blocking(0, false, errp)) {
return;
}
+
+ if (!qemu_chr_open_fd(chr, 0, 1, errp)) {
+ return;
+ }
+
atexit(term_exit);
memset(&act, 0, sizeof(act));
act.sa_handler = term_stdio_handler;
sigaction(SIGCONT, &act, NULL);
- qemu_chr_open_fd(chr, 0, 1);
-
stdio_allow_signal = !opts->has_signal || opts->signal;
qemu_chr_set_echo_stdio(chr, false);
}