[zeromq-dev] C++ high level binding

Pieter Hintjens ph at imatix.com
Thu Nov 3 14:36:02 CET 2011


On Thu, Nov 3, 2011 at 2:27 PM, Ilja Golshtein <ilejncs at narod.ru> wrote:

> C++ simplifies resource management so maintaining socket lifetime is not as painful as in pure C.

The problem is not C/C++ but that zmq_term requires that you
explicitly set LINGER on any active sockets, and close all sockets,
before calling zmq_term, otherwise applications block forever at
shutdown.

> I am not a big fan of Swiss knife alike tools and don't understand why messaging library should control user threads,
> why GUI library should operate with DB, etc.

There are three reasons:

* to enable portable code, since threading is different on POSIX and Windows
* to properly track socket creation, so shutdown can work safely
* to provide higher-level semantics for threads, e.g. attached
(sharing same context, connected by inproc 'pipe') / detached (using
their own context) threads in CZMQ

Since multithreading is such an important pattern in 0MQ applications,
handling this properly in the language binding makes things much
easier.

> Reactors are different.

Also useful, because they simplify many more complex 0MQ patterns.

-Pieter



More information about the zeromq-dev mailing list