diff options
author | Christian Gudrian <christian.gudrian@fluidon.com> | 2010-10-09 19:19:50 +0200 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2010-10-09 19:19:50 +0200 |
commit | f5030a93a52fc73292c16dae5f8e0e1b39732df0 (patch) | |
tree | 910e313bc50bcbe919fd4ef154f7e4a7aebbc791 /src | |
parent | 318cdd1f24cd663702222cc182ae2ccac5e76870 (diff) |
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 <christian.gudrian@fluidon.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/select.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
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)}; |