Skip to content

Correct handling of timeout during polling #212

Description

@TillAlex

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions