diff options
author | Paolo Bonzini | 2017-05-15 12:00:59 +0200 |
---|---|---|
committer | Jeff Cody | 2017-05-16 16:34:50 +0200 |
commit | 2bb5c936c5827e1d831002f7a7517cb8c2c2201d (patch) | |
tree | a0a51f4bd3d85535a2945022bc343885097e881e /exec.c | |
parent | curl: convert readv to coroutines (diff) | |
download | qemu-2bb5c936c5827e1d831002f7a7517cb8c2c2201d.tar.gz qemu-2bb5c936c5827e1d831002f7a7517cb8c2c2201d.tar.xz qemu-2bb5c936c5827e1d831002f7a7517cb8c2c2201d.zip |
curl: do not do aio_poll when waiting for a free CURLState
Instead, put the CURLAIOCB on a wait list and yield; curl_clean_state will
wake the corresponding coroutine.
Because of CURL's callback-based structure, we cannot easily convert
everything to CoMutex/CoQueue; keeping the QemuMutex is simpler. However,
CoQueue is a simple wrapper around a linked list, so we can easily
use QSIMPLEQ and open-code a CoQueue, protected by the BDRVCURLState
QemuMutex instead of a CoMutex.
Reviewed-by: Jeff Cody <jcody@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 20170515100059.15795-8-pbonzini@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'exec.c')
0 files changed, 0 insertions, 0 deletions