qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] coroutine: new sleep/wake API
@ 2021-05-03 11:25 Paolo Bonzini
  2021-05-03 11:25 ` [PATCH 1/6] coroutine-sleep: use a stack-allocated timer Paolo Bonzini
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Paolo Bonzini @ 2021-05-03 11:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: eesposit, stefanha

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 Bonzini (6):
  coroutine-sleep: use a stack-allocated timer
  coroutine-sleep: disallow NULL QemuCoSleepState** argument
  coroutine-sleep: allow qemu_co_sleep_wake(NULL)
  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    | 26 ++++++++------
 util/qemu-coroutine-sleep.c | 69 +++++++++++++++++--------------------
 4 files changed, 57 insertions(+), 62 deletions(-)

-- 
2.31.1



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-05-11 14:09 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-03 11:25 [PATCH 0/6] coroutine: new sleep/wake API Paolo Bonzini
2021-05-03 11:25 ` [PATCH 1/6] coroutine-sleep: use a stack-allocated timer Paolo Bonzini
2021-05-10 10:00   ` Vladimir Sementsov-Ogievskiy
2021-05-03 11:25 ` [PATCH 2/6] coroutine-sleep: disallow NULL QemuCoSleepState** argument Paolo Bonzini
2021-05-10 10:03   ` Vladimir Sementsov-Ogievskiy
2021-05-03 11:25 ` [PATCH 3/6] coroutine-sleep: allow qemu_co_sleep_wake that wakes nothing Paolo Bonzini
2021-05-10 10:15   ` Vladimir Sementsov-Ogievskiy
2021-05-03 11:25 ` [PATCH 4/6] coroutine-sleep: move timer out of QemuCoSleepState Paolo Bonzini
2021-05-10 10:19   ` Vladimir Sementsov-Ogievskiy
2021-05-03 11:25 ` [PATCH 5/6] coroutine-sleep: replace QemuCoSleepState pointer with struct in the API Paolo Bonzini
2021-05-10 10:38   ` Vladimir Sementsov-Ogievskiy
2021-05-03 11:25 ` [PATCH 6/6] coroutine-sleep: introduce qemu_co_sleep Paolo Bonzini
2021-05-10 10:46   ` Vladimir Sementsov-Ogievskiy
2021-05-11 14:07 ` [PATCH 0/6] coroutine: new sleep/wake API Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).