diff mbox

[13/21] coroutine: add qemu_coroutine_add_next

Message ID 1482503344-6424-14-git-send-email-vsementsov@virtuozzo.com
State New
Headers show

Commit Message

Vladimir Sementsov-Ogievskiy Dec. 23, 2016, 2:28 p.m. UTC
Simple add coroutine to self->co_queue_wakeup.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
 include/qemu/coroutine.h | 2 ++
 util/qemu-coroutine.c    | 7 +++++++
 2 files changed, 9 insertions(+)

Comments

Stefan Hajnoczi Jan. 31, 2017, 3:03 p.m. UTC | #1
On Fri, Dec 23, 2016 at 05:28:56PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Simple add coroutine to self->co_queue_wakeup.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
>  include/qemu/coroutine.h | 2 ++
>  util/qemu-coroutine.c    | 7 +++++++
>  2 files changed, 9 insertions(+)
> 
> diff --git a/include/qemu/coroutine.h b/include/qemu/coroutine.h
> index e6a60d5..6e87c87 100644
> --- a/include/qemu/coroutine.h
> +++ b/include/qemu/coroutine.h
> @@ -226,4 +226,6 @@ void coroutine_fn co_aio_sleep_ns(AioContext *ctx, QEMUClockType type,
>   */
>  void coroutine_fn yield_until_fd_readable(int fd);
>  
> +void qemu_coroutine_add_next(Coroutine *next);

Missing coroutine_fn.

Please add a doc comment and a testcase in tests/test-coroutine.c.
diff mbox

Patch

diff --git a/include/qemu/coroutine.h b/include/qemu/coroutine.h
index e6a60d5..6e87c87 100644
--- a/include/qemu/coroutine.h
+++ b/include/qemu/coroutine.h
@@ -226,4 +226,6 @@  void coroutine_fn co_aio_sleep_ns(AioContext *ctx, QEMUClockType type,
  */
 void coroutine_fn yield_until_fd_readable(int fd);
 
+void qemu_coroutine_add_next(Coroutine *next);
+
 #endif /* QEMU_COROUTINE_H */
diff --git a/util/qemu-coroutine.c b/util/qemu-coroutine.c
index 737bffa..300b96d 100644
--- a/util/qemu-coroutine.c
+++ b/util/qemu-coroutine.c
@@ -151,3 +151,10 @@  bool qemu_coroutine_entered(Coroutine *co)
 {
     return co->caller;
 }
+
+void qemu_coroutine_add_next(Coroutine *next)
+{
+    Coroutine *self = qemu_coroutine_self();
+    QSIMPLEQ_INSERT_TAIL(&self->co_queue_wakeup, next, co_queue_next);
+    trace_qemu_co_queue_next(next);
+}