| Branch: | Revision:

root / qemu-coroutine.c @ feature-archipelago

History | View | Annotate | Download (3 kB)

# Date Author Comment
70c60c08 09/12/2013 11:12 am Stefan Hajnoczi

coroutine: add ./configure --disable-coroutine-pool

The 'gthread' coroutine backend was written before the freelist (aka
pool) existed in qemu-coroutine.c.

This means that every thread is expected to exit when its coroutine
terminates. It is not possible to reuse threads from a pool....

b84c4586 05/24/2013 05:17 pm Stefan Hajnoczi

coroutine: protect global pool with a mutex

The coroutine freelist is a global pool of unused coroutines. It avoids
the setup/teardown overhead associated with the coroutine lifecycle.
Since the pool is global, we need to synchronize access so that
coroutines can be used outside the BQL....

02ffb504 05/24/2013 05:17 pm Stefan Hajnoczi

coroutine: stop using AioContext in CoQueue

qemu_co_queue_next(&queue) arranges that the next queued coroutine is
run at a later point in time. This deferred restart is useful because
the caller may not want to transfer control yet.

This behavior was implemented using QEMUBH in the past, which meant that...

40239784 02/22/2013 10:21 pm Paolo Bonzini

coroutine: move pooling to common code

The coroutine pool code is duplicated between the ucontext and
sigaltstack backends, and absent from the win32 backend. But the
code can be shared easily by moving it to qemu-coroutine.c.

Signed-off-by: Paolo Bonzini <>...

737e150e 12/19/2012 09:31 am Paolo Bonzini

block: move include files to include/block/

Signed-off-by: Paolo Bonzini <>

00dccaf1 08/01/2011 01:14 pm Kevin Wolf

coroutine: introduce coroutines

Asynchronous code is becoming very complex. At the same time
synchronous code is growing because it is convenient to write.
Sometimes duplicate code paths are even added, one synchronous and the
other asynchronous. This patch introduces coroutines which allow code...