qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v2 09/22] monitor: create monitor dedicate iothrea


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [RFC v2 09/22] monitor: create monitor dedicate iothread
Date: Thu, 12 Oct 2017 13:29:11 +0100
User-agent: Mutt/1.9.0 (2017-09-02)

On Fri, Sep 29, 2017 at 11:38:31AM +0800, Peter Xu wrote:
> @@ -4126,10 +4150,23 @@ void monitor_init(Chardev *chr, int flags)
>      qemu_mutex_unlock(&monitor_lock);
>  }
>  
> +static void monitor_io_thread_destroy(void)
> +{
> +    iothread_destroy(mon_global.mon_io_thread);
> +    mon_global.mon_io_thread = NULL;
> +}
> +
>  void monitor_cleanup(void)
>  {
>      Monitor *mon, *next;
>  
> +    /*
> +     * We need to explicitly stop the iothread (but not destroy it),
> +     * cleanup the monitor resources, then destroy the iothread.  See
> +     * again on the glib bug mentioned in 2b316774f6 for a reason.
> +     */
> +    iothread_stop(mon_global.mon_io_thread);
> +
>      qemu_mutex_lock(&monitor_lock);
>      QLIST_FOREACH_SAFE(mon, &mon_list, entry, next) {
>          QLIST_REMOVE(mon, entry);
> @@ -4137,6 +4174,8 @@ void monitor_cleanup(void)
>          g_free(mon);
>      }
>      qemu_mutex_unlock(&monitor_lock);
> +
> +    monitor_io_thread_destroy();
>  }

Minor style comment, I would inline monitor_io_thread_destroy() into
monitor_cleanup() instead of making it a function.

monitor_io_thread_destroy() relies on iothread_stop() being called
first.  Defining a function with no doc comment creates a risk that
someone else will call it in the future without first calling
iothread_stop().  It's safer to inline the code where it cannot be
misused by accident.

Also, please name things "iothread" instead of "io_thread" for
consistency.

Stefan



reply via email to

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