[zeromq-dev] To use zsock_signal or not to use zsock_signal

Pieter Hintjens ph at imatix.com
Mon Jan 11 10:54:50 CET 2016

There are a few patterns. For simple commands, no handshaking is
needed. The default is to handshake (with a signal, which is a special
short message) only at actor startup and at destruction.

For more complex protocols, or for cases where you need to wait for
command completion, it's a good idea to switch to fully synchronous,
with handshaking on every command. This is the zauth case. If you
configure security and don't wait for that to end, things get

And then for complex protocols + data flow, we open a second socket to
the actor on which we send data (in one or both directions), which is
async and not handshaked.

The mlm_server API falls into the "simple" category.

On Mon, Jan 11, 2016 at 10:32 AM, Michal Vyskocil
<michal.vyskocil at gmail.com> wrote:
> Hi,
> I have been exploring usage of actors in our project, so I started to
> model some parts as actors. To setup it, there is a simple protocol
> inspired by mlm_server ("VERBOSE", "CONNECT", "CONFIG", ...)
> It seems that there are two approaches
> 1.) mlm_server (https://github.com/zeromq/malamute/blob/master/src/mlm_server_engine.inc#L1395)
> 2.) zauth (https://github.com/zeromq/czmq/blob/master/src/zauth.c#L158)
> While zauth signals end of command processing by zsock_signal,
> mlm_server don't do that.
> Which approach is recommended? As we have had some timing issues and
> using zclock_sleep does not looks good, using zsock_signal seems like
> a better way to handle actor's configuration.
> --
> best regards
>      Michal Vyskocil
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

More information about the zeromq-dev mailing list