On Apr 8, 2013, at 12:40 PM, Matthew Woehlke <[email protected]> 
wrote:

> On 2013-04-08 08:37, Pieter Hintjens wrote:
>> So "sharing sockets between threads" is really a non-question, it's
>> only something people will try when they have not yet understood how
>> to use 0MQ properly. The one exception to this general rule is in
>> esoteric cases where you may create a socket in one thread, for use by
>> an other thread.
> 
> I'm actually doing this. Essentially, I have a 'thread class' that has a 
> run() method that is a thread entry point, but the ctor/dtor execute in 
> the 'parent' thread.
> 
> Is it safe to create and set up, and tear down, my 0MQ socket in the 
> ctor/dtor (i.e. in thread A, and poll/recv/etc. in thread B)? Is there 
> something I should be doing to make it safe?
> 
> The class does guarantee that ctor/run()/dtor will never execute in 
> parallel.

This is answered in the FAQ (http://www.zeromq.org/area:faq). Short answer is: 
Yes, go ahead and do this. If it crashes, protect the socket with some kind of 
memory barrier (e.g. mutex).

cr

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

Reply via email to