I use inproc in multi threaded applications as my standard approach now - even in things that don't communicate externally with anything else. I agree with you Pieter that 1) inproc transport works wonderfully for this and 2) the fact that you have to bind first has never caused me a problem when using czmq in this particular area.
Brian On Fri, Oct 19, 2012 at 10:00 PM, Pieter Hintjens <[email protected]> wrote: > On Fri, Oct 19, 2012 at 10:15 PM, Chuck Remes <[email protected]> wrote: > >> It may be safe for inproc, but I never write code using this assumption. Any >> change to the transport type breaks the application because the others are >> all asynchronous. > > The only place I use it (and it works very well there) is in thread > creation, together with PAIR sockets. In CZMQ we use this to create > "attached threads" that have a pipe back to the caller. > >> This is a long-time and well-known flaw in the library. The inproc transport >> is different and it causes problems when part of the marketing message in >> zeromq says that you can start with in-process communication and >> effortlessly scale out just by changing a single line of code. > > True. Using inproc successfully relies on doing the binds before > creating child threads, whereas other transports don't. > > -Pieter > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
