qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 3/4] chardev: use per-dev context for io_add_


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v2 3/4] chardev: use per-dev context for io_add_watch_poll
Date: Thu, 21 Sep 2017 16:11:33 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

On 21/09/2017 08:35, Peter Xu wrote:
> It was only passed in by chr_update_read_handlers().  However when
> reconnect, we'll lose that context information.  So if a chardev was
> running on another context (rather than the default context, the NULL
> pointer), it'll switch back to the default context if reconnection
> happens.  But, it should really stick to the old context.
> 
> Convert all the callers of io_add_watch_poll() to use the internally
> cached gcontext.  Then the context should be able to survive even after
> reconnections.

Why keep the argument then?

Thanks,

Paolo

> Signed-off-by: Peter Xu <address@hidden>
> ---
>  chardev/char-fd.c     | 2 +-
>  chardev/char-pty.c    | 2 +-
>  chardev/char-socket.c | 4 ++--
>  chardev/char-udp.c    | 2 +-
>  4 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/chardev/char-fd.c b/chardev/char-fd.c
> index 6a62a54..09fbb07 100644
> --- a/chardev/char-fd.c
> +++ b/chardev/char-fd.c
> @@ -94,7 +94,7 @@ static void fd_chr_update_read_handler(Chardev *chr,
>          chr->gsource = io_add_watch_poll(chr, s->ioc_in,
>                                             fd_chr_read_poll,
>                                             fd_chr_read, chr,
> -                                           context);
> +                                           chr->gcontext);
>      }
>  }
>  
> diff --git a/chardev/char-pty.c b/chardev/char-pty.c
> index e5d20a0..d239c04 100644
> --- a/chardev/char-pty.c
> +++ b/chardev/char-pty.c
> @@ -219,7 +219,7 @@ static void pty_chr_state(Chardev *chr, int connected)
>              chr->gsource = io_add_watch_poll(chr, s->ioc,
>                                                 pty_chr_read_poll,
>                                                 pty_chr_read,
> -                                               chr, NULL);
> +                                               chr, chr->gcontext);
>          }
>      }
>  }
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 1ae730a..ee71cbe 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -516,7 +516,7 @@ static void tcp_chr_connect(void *opaque)
>          chr->gsource = io_add_watch_poll(chr, s->ioc,
>                                             tcp_chr_read_poll,
>                                             tcp_chr_read,
> -                                           chr, NULL);
> +                                           chr, chr->gcontext);
>      }
>      qemu_chr_be_event(chr, CHR_EVENT_OPENED);
>  }
> @@ -535,7 +535,7 @@ static void tcp_chr_update_read_handler(Chardev *chr,
>          chr->gsource = io_add_watch_poll(chr, s->ioc,
>                                             tcp_chr_read_poll,
>                                             tcp_chr_read, chr,
> -                                           context);
> +                                           chr->gcontext);
>      }
>  }
>  
> diff --git a/chardev/char-udp.c b/chardev/char-udp.c
> index 4ee11d3..106dee1 100644
> --- a/chardev/char-udp.c
> +++ b/chardev/char-udp.c
> @@ -110,7 +110,7 @@ static void udp_chr_update_read_handler(Chardev *chr,
>          chr->gsource = io_add_watch_poll(chr, s->ioc,
>                                             udp_chr_read_poll,
>                                             udp_chr_read, chr,
> -                                           context);
> +                                           chr->gcontext);
>      }
>  }
>  
> 




reply via email to

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