Commit e9e6295b authored by Zhi Yong Wu's avatar Zhi Yong Wu Committed by Kevin Wolf
Browse files

CoQueue: introduce qemu_co_queue_wait_insert_head

parent 0563e191
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -61,6 +61,14 @@ void coroutine_fn qemu_co_queue_wait(CoQueue *queue)
    assert(qemu_in_coroutine());
}

void coroutine_fn qemu_co_queue_wait_insert_head(CoQueue *queue)
{
    Coroutine *self = qemu_coroutine_self();
    QTAILQ_INSERT_HEAD(&queue->entries, self, co_queue_next);
    qemu_coroutine_yield();
    assert(qemu_in_coroutine());
}

bool qemu_co_queue_next(CoQueue *queue)
{
    Coroutine *next;
+6 −0
Original line number Diff line number Diff line
@@ -117,6 +117,12 @@ void qemu_co_queue_init(CoQueue *queue);
 */
void coroutine_fn qemu_co_queue_wait(CoQueue *queue);

/**
 * Adds the current coroutine to the head of the CoQueue and transfers control to the
 * caller of the coroutine.
 */
void coroutine_fn qemu_co_queue_wait_insert_head(CoQueue *queue);

/**
 * Restarts the next coroutine in the CoQueue and removes it from the queue.
 *