This fixes a race condition in which the tcp_chr_read() ioc handler can close a connection that is being written to from another thread.
Note: vhost-user-test still fails if QTEST_VHOST_USER_FIXME is set. Berto RFC: https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg01510.html v1: https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg01834.html - Fixes memory leaks and adds a qemu_idle_add() function v2: https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg06137.html - Rebased on top of the current master (fc3dbb90f2eb069801bfb4cfe9cbc) - Patches 1 and 2: Remove the changes in char-pty.c, they're not needed after the rebase. - Patch 3: Fix conflicts after the rebase. v3: - Patch 3: Add tcp_chr_disconnect_locked() [Daniel] Alberto Garcia (3): main-loop: Fix GSource leak in qio_task_thread_worker() main-loop: Add qemu_idle_add() char-socket: Lock tcp_chr_disconnect() and socket_reconnect_timeout() chardev/char-socket.c | 25 +++++++++++++++++++++---- include/qemu/main-loop.h | 12 ++++++++++++ io/task.c | 9 +++------ util/main-loop.c | 9 +++++++++ 4 files changed, 45 insertions(+), 10 deletions(-) -- 2.11.0