|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 2/3] Always use nonblocking mode for qemu_chr_open_fd. |
Date: | Tue, 22 Jul 2008 20:26:59 -0500 |
User-agent: | Thunderbird 2.0.0.14 (X11/20080501) |
Hi, Ian Jackson wrote:
The rest of qemu assumes that IO operations on a CharDriverState do not block. Currently there are a couple of cases where such a driver was set up but the calls to set nonblocking mode were missing: * qemu_chr_open_pty * qemu_chr_open_pipe * qemu_chr_open_stdio This is fixed by adding two calls to socket_set_nonblock to qemu_chr_open_fd.
This changes semantics a bit. Previously, using a pty would guarantee that data is always written as qemu_chr_write does not perform any sort of buffering.
Now, that data will be silently dropped instead of causing QEMU to block. I don't think it's perfectly clear that one behaviour is clearly better than the other.
Regards, Anthony Liguori
Signed-off-by: Ian Jackson <address@hidden> --- vl.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/vl.c b/vl.c index 4f31288..c428c7e 100644 --- a/vl.c +++ b/vl.c @@ -2090,6 +2090,9 @@ static CharDriverState *qemu_chr_open_fd(int fd_in, int fd_out) CharDriverState *chr; FDCharDriver *s;+ socket_set_nonblock(fd_in);+ socket_set_nonblock(fd_out); + chr = qemu_mallocz(sizeof(CharDriverState)); if (!chr) return NULL;
[Prev in Thread] | Current Thread | [Next in Thread] |