iothread: delay the context release to finalize
commit5b3ac23fee97fc1a79ad2bb1cf3a1ce518d27905
authorPeter Xu <peterx@redhat.com>
Thu, 28 Sep 2017 02:59:57 +0000 (28 10:59 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 3 Oct 2017 18:36:19 +0000 (3 14:36 -0400)
tree99e4c83f3205fa68c1691a2f8fd36dc817786e45
parent82d90705fe203cc6e150c10bd61f0dbe6979e8f4
iothread: delay the context release to finalize

When gcontext is used with iothread, the context will be destroyed
during iothread_stop().  That's not good since sometimes we would like
to keep the resources until iothread is destroyed, but we may want to
stop the thread before that point.

Delay the destruction of gcontext to iothread finalize.  Then we can do:

  iothread_stop(thread);
  some_cleanup_on_resources();
  iothread_destroy(thread);

We may need this patch if we want to run chardev IOs in iothreads and
hopefully clean them up correctly.  For more specific information,
please see 2b316774f6 ("qemu-char: do not operate on sources from
finalize callbacks").

Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-id: 20170928025958.1420-5-peterx@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
iothread.c