[zeromq-dev] zmq::poll timeout returns immediately on MacOS/X 10.5
Matt Weinstein
matt_weinstein at yahoo.com
Fri Jun 11 00:17:17 CEST 2010
On Jun 10, 2010, at 4:03 PM, Martin Sustrik wrote:
> Matt,
>
>> I inserted a zmq::poll into the client side of the sample client/
>> server
>> application --
>>
>> ...
>>
>> zmq_pollitem_t pi;
>> pi.socket = s;
>> pi.fd = 0;
>> pi.events = ZMQ_POLLIN;
>> pi.revents = 0;
>> assert(zmq::poll(&pi, 1, TIMEOUT) == 0);
>>
>> // inserted before
>> s.recv (&reply);
>>
>> ...
>>
>>
>> If TIMEOUT is set to -1 this waits for the response, any other value
>> returns immediately.
>>
>> Am I missing something?
>
> No. This is a generic issue. Documentation says that function waits
> "up
> to" timeout interval, i.e. it can return prematurely.
Probably I'd change that to "may wait up to", with a big footnote :-)
>
> Exact waiting is possible, but it would have performance impact on
> zmq_poll. Others want to have poll as fast as possible, so it's hard
> decision to make.
>
> Thoughts anyone?
What would the kernel do? :)
One tack might be one condition variable per user thread, and a high-
priority service thread running a wake-up queue (pointing at a list of
unrolled lists...)?
> Martin
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
More information about the zeromq-dev
mailing list