Andreas - what you are saying is exactly like saying let's remove multipart, use send that sends a blob and have a serialization solution that support framing. I think that is the plan anyway.
On Thu, Feb 5, 2015 at 11:21 AM, Andreas Schultz <[email protected]> wrote: > Hi, > > ----- On 2 Feb, 2015, at 10:23, Pieter Hintjens [email protected] wrote: > > [...] > > > Multipart messages are the main reason we can't make threadsafe sockets. > > Well, yes and no. The API the 0MQ use for multipart messages is the main > reason that you can't make threadsafe sockets, because the API > does not have a atomic send/recv operation for multipart messages. > > Having to call the send/recv operation multiple times to process > multipart messages creates a serialization problem and also necessitates > in socket buffering, thus creating a concurrency problem for multi > part messages (not that it is impossible to solve, adding a per thread > buffers shouldn't be too difficult). The socket buffering is also likely > the reason that the performance drops (because of the additional copying). > > Doing multipart messages with an atomic, sendmsg like API, would be > much simpler. The 0MQ library could convert the 0MQ socket API call > into an real sendmsg call without having to copy the parts around. > > Andreas > > [...] > > > Cheers > > 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
