On Fri, Jan 09, 2015 at 06:19:50PM +0100, Marc-André Lureau wrote: > Learn to use the GCoroutine library instead of qemu own coroutine > implementation. > > GCoroutine is hosted on github: > https://github.com/elmarco/gcoroutine > > This allows to share the same coroutine implementation between various > projects (gtk-vnc and spice-gtk). It is related to the effort to push > coroutine support in GLib. See also: > https://bugzilla.gnome.org/show_bug.cgi?id=719362 > > Notes: > - there are no GCoroutine releases, the API isn't frozen > - this patch hasn't been thoroughly tested > - GCoroutine doesn't implement pools yet > - GCoroutine is missing sigaltstack based coroutines > - spice-gtk and gtk-vnc patches are being worked on
The GCoroutine API has a very direct mapping to QEMU's coroutine interface: https://github.com/elmarco/gcoroutine/blob/master/src/gcoroutine.h I like that you added gpointer arguments and return values to enter/yield. When writing the QEMU coroutine interface I dropped them because I felt we wouldn't need them, but they are appropriate in a general-purpose coroutine library. Kevin Lieven and Peter Lieven are currently measuring and improving coroutine performance in the QEMU block layer. I guess this will result in code changes to QEMU's coroutines implementation over the next weeks. Stefan
pgpCJh0eijngA.pgp
Description: PGP signature