[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/14] Handle deleted IOHandlers in a single pass
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 05/14] Handle deleted IOHandlers in a single pass |
Date: |
Wed, 10 Mar 2010 11:03:19 +0100 |
Previous code 1st call normal functions and then remove deleted
handlers in the following pass. Calllapse the two walks.
Signed-off-by: Juan Quintela <address@hidden>
---
vl.c | 17 +++++++----------
1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/vl.c b/vl.c
index 354ea31..c2ae185 100644
--- a/vl.c
+++ b/vl.c
@@ -3846,20 +3846,17 @@ void main_loop_wait(int timeout)
if (ret > 0) {
IOHandlerRecord *pioh;
- QTAILQ_FOREACH(ioh, &io_handlers, next) {
- if (!ioh->deleted && ioh->fd_read && FD_ISSET(ioh->fd, &rfds)) {
- ioh->fd_read(ioh->opaque);
- }
- if (!ioh->deleted && ioh->fd_write && FD_ISSET(ioh->fd, &wfds)) {
- ioh->fd_write(ioh->opaque);
- }
- }
-
- /* remove deleted IO handlers */
QTAILQ_FOREACH_SAFE(ioh, &io_handlers, next, pioh) {
if (ioh->deleted) {
QTAILQ_REMOVE(&io_handlers, ioh, next);
qemu_free(ioh);
+ continue;
+ }
+ if (ioh->fd_read && FD_ISSET(ioh->fd, &rfds)) {
+ ioh->fd_read(ioh->opaque);
+ }
+ if (ioh->fd_write && FD_ISSET(ioh->fd, &wfds)) {
+ ioh->fd_write(ioh->opaque);
}
}
}
--
1.6.6.1
- [Qemu-devel] [PATCH 01/14] Convert io handlers to QLIST, (continued)
- [Qemu-devel] [PATCH 01/14] Convert io handlers to QLIST, Juan Quintela, 2010/03/10
- Re: [Qemu-devel] [PATCH 01/14] Convert io handlers to QLIST, malc, 2010/03/10
- [Qemu-devel] Re: [PATCH 01/14] Convert io handlers to QLIST, Juan Quintela, 2010/03/10
- [Qemu-devel] Re: [PATCH 01/14] Convert io handlers to QLIST, malc, 2010/03/10
- [Qemu-devel] Re: [PATCH 01/14] Convert io handlers to QLIST, Juan Quintela, 2010/03/10
- [Qemu-devel] Re: [PATCH 01/14] Convert io handlers to QLIST, malc, 2010/03/10
- [Qemu-devel] Re: [PATCH 01/14] Convert io handlers to QLIST, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 02/14] remove useless cast, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 03/14] rename IOCanRWHandler to IOCanReadHandler, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 04/14] bt: remove bt_host_read_poll(), Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 05/14] Handle deleted IOHandlers in a single pass,
Juan Quintela <=
[Qemu-devel] [PATCH 07/14] qemu-char:stdio insert poll call into read one, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 08/14] qemu-char:tcp insert poll call into read one, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 06/14] tap: insert tap_can_send() into tap_send(), Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 09/14] qemu-char:fd insert poll call into read one, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 10/14] qemu-char:pty insert poll call into read one, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 11/14] qemu-char:udp insert poll call into read one, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 13/14] Remove now unused fd_read_poll and all its only left user, Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 14/14] Add qemu_remove_fd_handler(), Juan Quintela, 2010/03/10
[Qemu-devel] [PATCH 12/14] Remove qemu_set_fd_handler2(), Juan Quintela, 2010/03/10