[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v10 18/26] tests: fixes aio-win32 about aio_remove_fd_handler, ge
From: |
Yonggang Luo |
Subject: |
[PATCH v10 18/26] tests: fixes aio-win32 about aio_remove_fd_handler, get it consistence with aio-posix.c |
Date: |
Wed, 16 Sep 2020 01:12:26 +0800 |
This is a fixes for
(C:\work\xemu\qemu\build\tests\test-aio-multithread.exe:19100): GLib-CRITICAL
**: 23:03:24.965: g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)'
failed
ERROR test-aio-multithread - Bail out! GLib-FATAL-CRITICAL:
g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)' failed
(C:\work\xemu\qemu\build\tests\test-bdrv-drain.exe:21036): GLib-CRITICAL **:
23:03:29.861: g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)'
failed
ERROR test-bdrv-drain - Bail out! GLib-FATAL-CRITICAL: g_source_remove_poll:
assertion '!SOURCE_DESTROYED (source)' failed
And the idea comes from https://patchwork.kernel.org/patch/9975239/
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
util/aio-win32.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/util/aio-win32.c b/util/aio-win32.c
index 953c56ab48..49bd90e62e 100644
--- a/util/aio-win32.c
+++ b/util/aio-win32.c
@@ -37,6 +37,16 @@ struct AioHandler {
static void aio_remove_fd_handler(AioContext *ctx, AioHandler *node)
{
+ /*
+ * If the GSource is in the process of being destroyed then
+ * g_source_remove_poll() causes an assertion failure. Skip
+ * removal in that case, because glib cleans up its state during
+ * destruction anyway.
+ */
+ if (!g_source_is_destroyed(&ctx->source)) {
+ g_source_remove_poll(&ctx->source, &node->pfd);
+ }
+
/* If aio_poll is in progress, just mark the node as deleted */
if (qemu_lockcnt_count(&ctx->list_lock)) {
node->deleted = 1;
@@ -139,8 +149,6 @@ void aio_set_event_notifier(AioContext *ctx,
/* Are we deleting the fd handler? */
if (!io_notify) {
if (node) {
- g_source_remove_poll(&ctx->source, &node->pfd);
-
aio_remove_fd_handler(ctx, node);
}
} else {
--
2.28.0.windows.1
- [PATCH v10 12/26] tests: Enable crypto tests under msys2/mingw, (continued)
- [PATCH v10 12/26] tests: Enable crypto tests under msys2/mingw, Yonggang Luo, 2020/09/15
- [PATCH v10 08/26] tests: test-replication disable /replication/secondary/* on msys2/mingw., Yonggang Luo, 2020/09/15
- [PATCH v10 10/26] meson: Use -b to ignore CR vs. CR-LF issues on Windows, Yonggang Luo, 2020/09/15
- [PATCH v10 07/26] tests: Fixes test-replication.c on msys2/mingw., Yonggang Luo, 2020/09/15
- [PATCH v10 03/26] configure: Fixes ncursesw detection under msys2/mingw and enable curses, Yonggang Luo, 2020/09/15
- [PATCH v10 06/26] tests: disable /char/stdio/* tests in test-char.c on win32, Yonggang Luo, 2020/09/15
- [PATCH v10 02/26] ci: fixes msys2 build by upgrading capstone to 4.0.2, Yonggang Luo, 2020/09/15
- [PATCH v10 16/26] tests: Convert g_free to g_autofree macro in test-logging.c, Yonggang Luo, 2020/09/15
- [PATCH v10 04/26] win32: Simplify gmtime_r detection direct base on _POSIX_THREAD_SAFE_FUNCTIONS., Yonggang Luo, 2020/09/15
- [PATCH v10 17/26] tests: Fixes test-io-channel-socket.c tests under msys2/mingw, Yonggang Luo, 2020/09/15
- [PATCH v10 18/26] tests: fixes aio-win32 about aio_remove_fd_handler, get it consistence with aio-posix.c,
Yonggang Luo <=
- [PATCH v10 19/26] tests: Fixes test-io-channel-file by mask only owner file state mask bits, Yonggang Luo, 2020/09/15
- [PATCH v10 09/26] osdep: file locking functions are not available on Win32, Yonggang Luo, 2020/09/15
- [PATCH v10 05/26] curses: Fixes curses compiling errors., Yonggang Luo, 2020/09/15
- [PATCH v10 01/26] rcu: Implement drain_call_rcu, Yonggang Luo, 2020/09/15
- [PATCH v10 20/26] tests: fix test-util-sockets.c, Yonggang Luo, 2020/09/15
- [PATCH v10 22/26] rcu: fixes test-logging.c by call drain_call_rcu before rmdir_full, Yonggang Luo, 2020/09/15
- [PATCH v10 23/26] meson: upgrade meson for execute custom ninjatool under msys2 properly, Yonggang Luo, 2020/09/15
- [PATCH v10 21/26] tests: Fixes test-qdev-global-props.c, Yonggang Luo, 2020/09/15
- [PATCH v10 24/26] ci: Enable msys2 ci in cirrus, Yonggang Luo, 2020/09/15
- [PATCH v10 25/26] block: Fixes nfs compiling error on msys2/mingw, Yonggang Luo, 2020/09/15