From f5030a93a52fc73292c16dae5f8e0e1b39732df0 Mon Sep 17 00:00:00 2001 From: Christian Gudrian Date: Sat, 9 Oct 2010 19:19:50 +0200 Subject: Execute the timers before pollset initialisation. Since executing the timers might modify the source pollsets we have to defer the initialisation until after the timers have executed. Signed-off-by: Christian Gudrian --- AUTHORS | 1 + src/select.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 70d816a..ab05561 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,6 +8,7 @@ Bernd Prager Bernd Melchers Brian Buchanan Chris Wong +Christian Gudrian Conrad D. Steenberg Dhammika Pathirana Dhruva Krishnamurthy diff --git a/src/select.cpp b/src/select.cpp index ae2ffe2..3a7cd81 100644 --- a/src/select.cpp +++ b/src/select.cpp @@ -147,14 +147,14 @@ void zmq::select_t::loop () { while (!stopping) { + // Execute any due timers. + uint64_t timeout = execute_timers (); + // Intialise the pollsets. memcpy (&readfds, &source_set_in, sizeof source_set_in); memcpy (&writefds, &source_set_out, sizeof source_set_out); memcpy (&exceptfds, &source_set_err, sizeof source_set_err); - // Execute any due timers. - uint64_t timeout = execute_timers (); - // Wait for events. struct timeval tv = {(long) (timeout / 1000), (long) (timeout % 1000 * 1000)}; -- cgit v1.2.3