On Wed, Sep 22, 2010 at 14:47, Pieter Hintjens <[email protected]> wrote:
> On Wed, Sep 22, 2010 at 2:08 PM, Pieter Hintjens <[email protected]> wrote: > > > Strange. I remember discussing this with Martin Sustrik and hearing, > > "when a message is sent 0MQ nullifies it". > > OK, so the user guide is wrong on this. Sending a message is safe and > does not affect it. Receiving _into_ an existing message will nullify > the message first. > > Wires got crossed somewhere... sorry about that. > > You can send the same message N times safely. > I don't believe that's true, since it broke in my device code. Sending a message twice results in the second send being empty. send(msg) takes ownership of the contents of msg, and re-initializes msg, which is your *reference* to the content. You can send a message multiple times, as long as you copy the reference, so that you still have a reference to the content after zmq clears out the one you gave to send. The following will send a bunch of empty messages: while true: socket.send(msg) This, however, will send msg as long as you like: # note that there will be no real copies of data, only references while true: zmq_msg_copy(&tosend, &msg) socket.send(tosend) zmq_msg_close(&tosend) Forgive the not-quite-Python pseudocode. -MinRK > > - > Pieter Hintjens > iMatix - www.imatix.com > _______________________________________________ > 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
