[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 14/17] main-loop: use GSource to poll AIO file descr
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 14/17] main-loop: use GSource to poll AIO file descriptors |
Date: |
Tue, 25 Sep 2012 14:56:00 +0200 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
main-loop.c | 23 ++++++-----------------
main-loop.h | 2 --
2 file modificati, 6 inserzioni(+), 19 rimozioni(-)
diff --git a/main-loop.c b/main-loop.c
index b290c79..209f699 100644
--- a/main-loop.c
+++ b/main-loop.c
@@ -205,6 +205,7 @@ static AioContext *qemu_aio_context;
int main_loop_init(void)
{
int ret;
+ GSource *src;
qemu_mutex_lock_iothread();
ret = qemu_signal_init();
@@ -219,6 +220,9 @@ int main_loop_init(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;
}
@@ -481,8 +485,6 @@ int main_loop_wait(int nonblocking)
if (nonblocking) {
timeout = 0;
- } else {
- aio_bh_update_timeout(qemu_aio_context, &timeout);
}
/* poll any events */
@@ -505,10 +507,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;
}
@@ -519,11 +517,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);
@@ -543,16 +536,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 47644ce..c58f38b 100644
--- a/main-loop.h
+++ b/main-loop.h
@@ -312,7 +312,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);
-void qemu_bh_update_timeout(uint32_t *timeout);
#endif
--
1.7.12
- Re: [Qemu-devel] [PATCH 08/17] aio: add non-blocking variant of aio_wait, (continued)
- [Qemu-devel] [PATCH 10/17] aio: add Win32 implementation, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 09/17] aio: prepare for introducing GSource-based dispatch, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 12/17] aio: add aio_notify, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 13/17] aio: call aio_notify after setting I/O handlers, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 14/17] main-loop: use GSource to poll AIO file descriptors,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 16/17] aio: clean up now-unused functions, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 15/17] main-loop: use aio_notify for qemu_notify_event, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 17/17] linux-aio: use event notifiers, Paolo Bonzini, 2012/09/25
- [Qemu-devel] [PATCH 11/17] aio: make AioContexts GSources, Paolo Bonzini, 2012/09/25