On 02/03/2018 07:39 AM, Paolo Bonzini wrote: > qemu_co_queue_next does not need to release and re-acquire the mutex, > because the queued coroutine does not run immediately. However, this > does not hold for qemu_co_enter_next. Now that qemu_co_queue_wait > can synchronize (via QemuLockable) with code that is not running in > coroutine context, it's important that code using qemu_co_enter_next > can easily use a standardized locking idiom. > > First of all, qemu_co_enter_next must use aio_co_wake to restart the > coroutine. Second, the function gains a second argument, a QemuLockable*, > and the comments of qemu_co_queue_next and qemu_co_queue_restart_all > are adjusted to clarify the difference. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > fsdev/qemu-fsdev-throttle.c | 4 ++-- > include/qemu/coroutine.h | 19 +++++++++++++------ > util/qemu-coroutine-lock.c | 10 ++++++++-- > 3 files changed, 23 insertions(+), 10 deletions(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~