[zeromq-dev] Issue 85 & 92

Martin Sustrik sustrik at 250bpm.com
Sat Oct 16 14:17:47 CEST 2010


On 10/16/2010 02:11 PM, Martin Sustrik wrote:
> On 10/16/2010 01:58 PM, Pieter Hintjens wrote:
>> So the sender thread can presumably detect that it's sending a message
>> to itself?  It has the same signaler object as the thread it's sending
>> to.  So it doesn't need to send a message, and doesn't need to wait
>> for a reply (which can provably never arrive).
> The "0MQ threads" are the following:
>
> 1. Each I/O thread lives in a separate "0MQ thread"
> 2. Each socket lives in a separate "0MQ thread"
> 3. Special administrative "0MQ thread"
>
> zmq_term runs in context of the administrative 0MQ thread (3) while 
> each socket lives in its dedicated 0MQ thread (2). Thus, from 0MQ's 
> perspective they are running in different threads.
>
To put it more simply: While your test program is well behaved and 
doesn't migrate the socket, 0MQ has no way to be sure that. If the 
client happens to be Erlang VM or somesuch, it can easily migrate the 
socket to another OS thread without even letting 0MQ know about the fact.

Martin




More information about the zeromq-dev mailing list