When leaving a coroutine, it swaps back to where it came from, not to
the leader/main coroutine.
---
 gtk/coroutine_ucontext.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gtk/coroutine_ucontext.c b/gtk/coroutine_ucontext.c
index 6251528..889f0d6 100644
--- a/gtk/coroutine_ucontext.c
+++ b/gtk/coroutine_ucontext.c
@@ -103,7 +103,7 @@ void *coroutine_swap(struct coroutine *from, struct 
coroutine *to, void *arg)
                return from->data;
        else if (ret == 1) {
                coroutine_release(to);
-               current = &leader;
+               current = from;
                to->exited = 1;
                return to->data;
        }
-- 
1.8.3.1

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to