diff options
author | Eric Blake <eblake@redhat.com> | 2017-09-05 14:11:12 -0500 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2017-09-06 10:10:58 -0500 |
commit | 9ffb8270205a274a18ee4f8a735e2fccaf957246 (patch) | |
tree | 6ec3d166399cf431b720d44cf53489cce3187047 /include/io | |
parent | 3f5c4076f118072ac7403ca092d63a1766cd5e04 (diff) |
io: Yield rather than wait when already in coroutine
The new qio_channel_{read,write}{,v}_all functions are documented
as yielding until data is available. When used on a blocking
channel, this yield is done via qio_channel_wait() which spawns
a nested event loop under the hood (so it is that secondary loop
which yields as needed); but if we are already in a coroutine (at
which point QIO_CHANNEL_ERR_BLOCK is only possible if we are a
non-blocking channel), we want to yield the current coroutine
instead of spawning a nested event loop.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20170905191114.5959-2-eblake@redhat.com>
Acked-by: Daniel P. Berrange <berrange@redhat.com>
[commit message updated]
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'include/io')
0 files changed, 0 insertions, 0 deletions