Commit f5030a93 authored by Christian Gudrian's avatar Christian Gudrian Committed by Martin Sustrik

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: 's avatarChristian Gudrian <christian.gudrian@fluidon.com>
parent 318cdd1f
......@@ -8,6 +8,7 @@ Bernd Prager <bernd@prager.ws>
Bernd Melchers <melchers@ZEDAT.FU-Berlin.DE>
Brian Buchanan <bwb@holo.org>
Chris Wong <chris@chriswongstudio.com>
Christian Gudrian <christian.gudrian@fluidon.com>
Conrad D. Steenberg <conrad.steenberg@caltech.edu>
Dhammika Pathirana <dhammika@gmail.com>
Dhruva Krishnamurthy <dhruva@ymail.com>
......
......@@ -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)};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment