On Thu, Nov 3, 2011 at 2:27 PM, Ilja Golshtein <[email protected]> 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
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to