zeromq / clrzmq4

ZeroMQ C# namespace (.NET and mono, Windows, Linux and MacOSX, x86 and amd64)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Correct handling of timeout during polling

TillAlex opened this issue · comments

During debugging of the case when timeout elapses while polling I found a strange behaviour:

In

while (!(result = (-1 != zmq.poll(native, 1, timeoutMs))))

the result of zmq_poll is compared to -1. If it's not -1 the method return true. In the case when the timeout elapsed the return value of zmq_poll is 0 and true is returned.

In ZPollItems.Poll

if (PollMany(sockets, items, pollEvents, out error, timeout))

the return value is used to decided if PollManyResults has to be called. But why should we try to read the results if no events have been signaled?

Can anyone have a look into this if the code is working as intended?