chardev: block during sync read
A sync read should block until all requested data is available (instead of retrying in qemu_chr_fe_read_all). Change the channel to blocking during sync_read. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20170706170353.32601-1-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
parent
747969db2a
commit
bcdeb9be56
@ -454,7 +454,9 @@ static int tcp_chr_sync_read(Chardev *chr, const uint8_t *buf, int len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
qio_channel_set_blocking(s->ioc, true, NULL);
|
||||
size = tcp_chr_recv(chr, (void *) buf, len);
|
||||
qio_channel_set_blocking(s->ioc, false, NULL);
|
||||
if (size == 0) {
|
||||
/* connection closed */
|
||||
tcp_chr_disconnect(chr);
|
||||
|
Loading…
Reference in New Issue
Block a user