[dovecot-cvs] dovecot/src/lib ioloop-epoll.c, 1.21, 1.22 ioloop-internal.h, 1.19, 1.20 ioloop-kqueue.c, 1.16, 1.17 ioloop-poll.c, 1.35, 1.36 ioloop-select.c, 1.25, 1.26 ioloop.c, 1.45, 1.46
tss at dovecot.org
tss at dovecot.org
Thu Mar 15 16:38:28 EET 2007
- Previous message: [dovecot-cvs] dovecot/src/lib ioloop-epoll.c, 1.11.2.5, 1.11.2.6 ioloop-internal.h, 1.16.2.2, 1.16.2.3 ioloop-kqueue.c, 1.4.2.8, 1.4.2.9 ioloop-poll.c, 1.32.2.2, 1.32.2.3 ioloop-select.c, 1.23, 1.23.2.1 ioloop.c, 1.35.2.8, 1.35.2.9
- Next message: [dovecot-cvs] dovecot/src/imap client.c,1.79,1.80
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /var/lib/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv11825
Modified Files:
ioloop-epoll.c ioloop-internal.h ioloop-kqueue.c ioloop-poll.c
ioloop-select.c ioloop.c
Log Message:
If poll()/etc. timeouts, we didn't handle time timeouts immediately but
called poll()/etc again with zero timeout and then handled the timeouts.
Index: ioloop-epoll.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop-epoll.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- ioloop-epoll.c 8 Mar 2007 22:04:21 -0000 1.21
+++ ioloop-epoll.c 15 Mar 2007 14:38:25 -0000 1.22
@@ -170,7 +170,7 @@
i_fatal("epoll_wait(): %m");
/* execute timeout handlers */
- io_loop_handle_timeouts(ioloop);
+ io_loop_handle_timeouts(ioloop, ret == 0);
if (!ioloop->running)
return;
Index: ioloop-internal.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop-internal.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- ioloop-internal.h 8 Mar 2007 22:04:21 -0000 1.19
+++ ioloop-internal.h 15 Mar 2007 14:38:25 -0000 1.20
@@ -52,7 +52,7 @@
int io_loop_get_wait_time(struct timeout *timeout, struct timeval *tv,
struct timeval *tv_now);
-void io_loop_handle_timeouts(struct ioloop *ioloop);
+void io_loop_handle_timeouts(struct ioloop *ioloop, bool update_run_now);
/* I/O handler calls */
void io_loop_handle_add(struct ioloop *ioloop, struct io_file *io);
Index: ioloop-kqueue.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop-kqueue.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- ioloop-kqueue.c 8 Mar 2007 22:04:21 -0000 1.16
+++ ioloop-kqueue.c 15 Mar 2007 14:38:25 -0000 1.17
@@ -140,7 +140,7 @@
}
/* execute timeout handlers */
- io_loop_handle_timeouts(ioloop);
+ io_loop_handle_timeouts(ioloop, ret == 0);
for (i = 0; i < ret; i++) {
/* io_loop_handle_add() may cause events array reallocation,
Index: ioloop-poll.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop-poll.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- ioloop-poll.c 8 Mar 2007 22:04:21 -0000 1.35
+++ ioloop-poll.c 15 Mar 2007 14:38:25 -0000 1.36
@@ -156,7 +156,7 @@
i_fatal("poll(): %m");
/* execute timeout handlers */
- io_loop_handle_timeouts(ioloop);
+ io_loop_handle_timeouts(ioloop, ret == 0);
if (ret <= 0 || !ioloop->running) {
/* no I/O events */
Index: ioloop-select.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop-select.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- ioloop-select.c 8 Mar 2007 22:04:21 -0000 1.25
+++ ioloop-select.c 15 Mar 2007 14:38:25 -0000 1.26
@@ -123,7 +123,7 @@
i_warning("select() : %m");
/* execute timeout handlers */
- io_loop_handle_timeouts(ioloop);
+ io_loop_handle_timeouts(ioloop, ret == 0);
if (ret <= 0 || !ioloop->running) {
/* no I/O events */
Index: ioloop.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- ioloop.c 15 Mar 2007 14:28:00 -0000 1.45
+++ ioloop.c 15 Mar 2007 14:38:25 -0000 1.46
@@ -182,7 +182,7 @@
return 0;
}
-void io_loop_handle_timeouts(struct ioloop *ioloop)
+void io_loop_handle_timeouts(struct ioloop *ioloop, bool update_run_now)
{
struct timeout *called_timeouts;
struct timeval tv;
@@ -220,13 +220,14 @@
}
/* Try again. */
- io_loop_handle_timeouts(ioloop);
+ io_loop_handle_timeouts(ioloop, TRUE);
}
}
ioloop_time = ioloop_timeval.tv_sec;
- if (ioloop->timeouts == NULL || !ioloop->timeouts->run_now)
+ if (ioloop->timeouts == NULL ||
+ (!ioloop->timeouts->run_now && !update_run_now))
return;
called_timeouts = NULL;
- Previous message: [dovecot-cvs] dovecot/src/lib ioloop-epoll.c, 1.11.2.5, 1.11.2.6 ioloop-internal.h, 1.16.2.2, 1.16.2.3 ioloop-kqueue.c, 1.4.2.8, 1.4.2.9 ioloop-poll.c, 1.32.2.2, 1.32.2.3 ioloop-select.c, 1.23, 1.23.2.1 ioloop.c, 1.35.2.8, 1.35.2.9
- Next message: [dovecot-cvs] dovecot/src/imap client.c,1.79,1.80
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list