[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 27/39] main-loop: use GSource to poll AIO file de
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v2 27/39] main-loop: use GSource to poll AIO file descriptors |
Date: |
Wed, 31 Oct 2012 16:30:44 +0100 |
This lets us remove the hooks for the main loop in async.c.
Reviewed-by: Anthony Liguori <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
main-loop.c | 23 ++++++-----------------
main-loop.h | 1 -
2 file modificati, 6 inserzioni(+), 18 rimozioni(-)
diff --git a/main-loop.c b/main-loop.c
index a86c275..365c9d3 100644
--- a/main-loop.c
+++ b/main-loop.c
@@ -205,6 +205,7 @@ static AioContext *qemu_aio_context;
int qemu_init_main_loop(void)
{
int ret;
+ GSource *src;
init_clocks();
init_timer_alarm();
@@ -222,6 +223,9 @@ int qemu_init_main_loop(void)
}
qemu_aio_context = aio_context_new();
+ src = aio_get_g_source(qemu_aio_context);
+ g_source_attach(src, NULL);
+ g_source_unref(src);
return 0;
}
@@ -484,8 +488,6 @@ int main_loop_wait(int nonblocking)
if (nonblocking) {
timeout = 0;
- } else {
- aio_bh_update_timeout(qemu_aio_context, &timeout);
}
/* poll any events */
@@ -508,10 +510,6 @@ int main_loop_wait(int nonblocking)
qemu_run_all_timers();
- /* Check bottom-halves last in case any of the earlier events triggered
- them. */
- qemu_bh_poll();
-
return ret;
}
@@ -522,11 +520,6 @@ QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque)
return aio_bh_new(qemu_aio_context, cb, opaque);
}
-int qemu_bh_poll(void)
-{
- return aio_bh_poll(qemu_aio_context);
-}
-
void qemu_aio_flush(void)
{
aio_flush(qemu_aio_context);
@@ -546,16 +539,12 @@ void qemu_aio_set_fd_handler(int fd,
{
aio_set_fd_handler(qemu_aio_context, fd, io_read, io_write, io_flush,
opaque);
-
- qemu_set_fd_handler2(fd, NULL, io_read, io_write, opaque);
}
+#endif
void qemu_aio_set_event_notifier(EventNotifier *notifier,
EventNotifierHandler *io_read,
AioFlushEventNotifierHandler *io_flush)
{
- qemu_aio_set_fd_handler(event_notifier_get_fd(notifier),
- (IOHandler *)io_read, NULL,
- (AioFlushHandler *)io_flush, notifier);
+ aio_set_event_notifier(qemu_aio_context, notifier, io_read, io_flush);
}
-#endif
diff --git a/main-loop.h b/main-loop.h
index 1d1a56b..326c742 100644
--- a/main-loop.h
+++ b/main-loop.h
@@ -302,6 +302,5 @@ void qemu_iohandler_poll(fd_set *readfds, fd_set *writefds,
fd_set *xfds, int rc
QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque);
void qemu_bh_schedule_idle(QEMUBH *bh);
-int qemu_bh_poll(void);
#endif
--
1.7.12.1
- [Qemu-devel] [PATCH v2 10/39] qemu-tool: do not depend on qemu-timer.c, (continued)
- [Qemu-devel] [PATCH v2 10/39] qemu-tool: do not depend on qemu-timer.c, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 11/39] build: opts-visitor is not really part of QAPI, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 12/39] build: do not include main loop where it is not actually used, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 17/39] aio: provide platform-independent API, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 20/39] aio: test node->deleted before calling io_flush, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 21/39] aio: add non-blocking variant of aio_wait, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 23/39] aio: add Win32 implementation, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 22/39] aio: prepare for introducing GSource-based dispatch, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 25/39] aio: add aio_notify, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 24/39] aio: make AioContexts GSources, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 27/39] main-loop: use GSource to poll AIO file descriptors,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v2 29/39] aio: clean up now-unused functions, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 33/39] threadpool: do not take lock in event_notifier_ready, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 32/39] aio: add generic thread-pool facility, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 34/39] block: switch posix-aio-compat to threadpool, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 35/39] raw: merge posix-aio-compat.c into block/raw-posix.c, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 36/39] raw-posix: rename raw-posix-aio.h, hide unavailable prototypes, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 37/39] raw-win32: add emulated AIO support, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 30/39] linux-aio: use event notifiers, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 14/39] event_notifier: enable it to use pipes, Paolo Bonzini, 2012/10/31
- [Qemu-devel] [PATCH v2 15/39] vl: init main loop earlier, Paolo Bonzini, 2012/10/31