On Mon, May 17, 2021 at 12:05:42PM +0200, Paolo Bonzini wrote: > This is a revamp of the qemu_co_sleep* API that makes it easier to > extend the API: the state that is needed to wake up a coroutine is now > part of the public API instead of hidden behind a pointer-to-pointer; > the API is made more extensible by pushing the rest of QemuCoSleepState > into local variables. > > In the future, this will be extended to introduce a prepare/sleep/cancel > API similar to Linux's prepare_to_wait/schedule/finish_wait functions. > For now, this is just a nice refactoring. > > Paolo > > v1->v2: comment and commit message updates in patches 3, 5 and 6 > > Paolo Bonzini (6): > coroutine-sleep: use a stack-allocated timer > coroutine-sleep: disallow NULL QemuCoSleepState** argument > coroutine-sleep: allow qemu_co_sleep_wake that wakes nothing > coroutine-sleep: move timer out of QemuCoSleepState > coroutine-sleep: replace QemuCoSleepState pointer with struct in the > API > coroutine-sleep: introduce qemu_co_sleep > > block/block-copy.c | 10 ++--- > block/nbd.c | 14 +++---- > include/qemu/coroutine.h | 27 ++++++++----- > util/qemu-coroutine-sleep.c | 75 +++++++++++++++++++------------------ > 4 files changed, 64 insertions(+), 62 deletions(-) > > -- > 2.31.1 > Thanks, applied to my block tree: https://gitlab.com/stefanha/qemu/commits/block Stefan