[zeromq-dev] blocking
john skaller
skaller at users.sourceforge.net
Sat Jan 21 23:34:24 CET 2012
Which ops in 0MQ can block?
I know these can block:
send/recv/send_msg/recv_msg
close
term
can anything else block? Most of the other ops would seem to
work async so don't block, right?
I have to get rid of all blocking ops. This means, for example, that
when the client says "send", it doesn't actually call zmq_send.
Instead, the request is wrapped up in a struct and put in a queue.
A separate pthread picks up the request and arranges to service
it with a non-blocking op and polling. This will actually dispatch
any I/O to zmq internals running in the zmq_init n pthreads.
The service request mechanism already exists in Felix, and is already
used for ordinary socket I/O. But stream I/O sucks. We need messages.. :)
--
john skaller
skaller at users.sourceforge.net
More information about the zeromq-dev
mailing list