[zeromq-dev] Do PUSH sockets have a queue?

Martin Sustrik sustrik at 250bpm.com
Sat May 28 09:16:17 CEST 2011


Hi Henry,

> Why do PUSH sockets block until a PULL socket has connected?
>
> Shouldn't the PUSH block only when its HWM is reached?
>
>  From my experiments it seems like the only queues in a PUSH/PULL
> scenario are on the PULL sockets. Is this correct?

No. But the queues are created on *per-peer* basis. Ie. if there are two 
PULLs connected to a PUSH, there are two queues in PUSH. If there's no 
PULL connected to PUSH, there's no queue in PUSH. If there's no queue 
there's nowhere to store messages in.

Recently we've discussed possible change that would create a queue as 
soon as socket is created and assign it to the first new connection 
being made.

Martin



More information about the zeromq-dev mailing list