On Feb 16, 2012, at 3:51 PM, Pieter Hintjens wrote:

> Hi,
> 
> Does anyone have a valid use case for thread-safe sockets? It seems
> that the semantics are fuzzy and using this would lead to poor design.
> What happens if two threads are polling the same sockets, but one
> message arrives?

zmq_poll() would probably need to be modified to disallow multiple threads from 
polling. Alternately, zmq_poll() would need to disallow a poll_item list that 
contained a socket that is already a member of another call to zmq_poll() from 
another thread.

Ugly. Error prone. I don't see how this could work well without some hacks. And 
now "thread safety" would generate a shit-ton of additional questions about why 
zmq_poll() was so strict, broken, etc.

> What if two threads are in a blocking recv on the
> same socket?

Only one thread would be allowed through the mutex to block on the receive. The 
second thread would block on the mutex. No problem.

> If we don't have a clear problem that this change is fixing, I'd like
> to patch it out.

I don't have a use-case but I think there are at least 2 people on the list who 
do. I hope they speak up.

cr


_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to