qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] char-pty: fix glib assert


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH] char-pty: fix glib assert
Date: Mon, 29 Jan 2018 17:40:11 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2

On 29/01/2018 17:17, Juan Quintela wrote:
> I am having this assert over and over:
> 
> (process:30804): GLib-CRITICAL **: g_source_unref: assertion 'source != NULL' 
> failed
> 
> gdb points to the line changed on this patch, and my reading of
> commit:
> 
> 2c716ba1506769c9be2caa02f0f6d6e7c00f4304
> 
> is that it should be timer_src what is unrefered there.
> 
> But I don't claim to fully understand this code, so ....
> 
> Any comment?
> 
> Thanks, Juan.
> 
> Signed-off-by: Juan Quintela <address@hidden>
> CC: Peter Xu <address@hidden>
> CC: Paolo Bonzini <address@hidden>
> 
> 
> ---
>  chardev/char-pty.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/chardev/char-pty.c b/chardev/char-pty.c
> index 89315e6807..c26e02bce8 100644
> --- a/chardev/char-pty.c
> +++ b/chardev/char-pty.c
> @@ -57,8 +57,8 @@ static gboolean pty_chr_timer(gpointer opaque)
>      PtyChardev *s = PTY_CHARDEV(opaque);
>  
>      qemu_mutex_lock(&chr->chr_write_lock);
> +    g_source_unref(s->timer_src);
>      s->timer_src = NULL;
> -    g_source_unref(s->open_source);
>      s->open_source = NULL;
>      if (!s->connected) {
>          /* Next poll ... */
> 

If I read correctly the doc, we also need a
g_source_destroy(s->timer_src). Perhaps we can directly call
pty_chr_timer_cancel() here?

Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]