Re: [PATCH spice-gtk 2/4] coroutine: fix current coroutine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 15, 2013 at 10:03:40PM +0100, Marc-André Lureau wrote:
> 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;

The way we use it, it's probably not different, we are always switching between a
coroutine and the main context, ret == 1 when the destination context has
exited, and hopefully, we are not exiting from the main context when the
coroutine is still alive (ie 'to' which is exiting can't be the leader, so
from == &leader).

However, I agree this patch makes sense, so ACK. I'm wondering if this code
ever gets triggered by spice-gtk?
coroutine-winfibers.c has the same current = &leader; assignment.

Christophe

Attachment: pgpixhn57E9pM.pgp
Description: PGP signature

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

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]