On Wed, Sep 22, 2010 at 3:16 AM, Ilja Golshtein <[email protected]> wrote:

> zmq::message_t msg;
> socket_a.recv(&msg);l
> socket_b.send(msg);
> socket_c.send(msg);

Strange.  I remember discussing this with Martin Sustrik and hearing,
"when a message is sent 0MQ nullifies it".

However the zmq_send man page does not mention this, and a quick test
proves that zmq_send does not in fact nullify the sent message.  I've
just tested both with zmq_msg_init_size and zmq_msg_init_data and the
message is not nullified after sending.

    zmq_msg_t message;
    zmq_msg_init_size (&message, 6);
    memcpy (zmq_msg_data (&message), "Hello", 6);
    printf ("Message data before sending: %s\n", (char *) zmq_msg_data
(&message));
    printf ("Message size before sending: %d\n", zmq_msg_size (&message));
    assert (zmq_send (socket, &message, 0) == 0);
    printf ("Message data after sending: %s\n", (char *) zmq_msg_data
(&message));
    printf ("Message size after sending: %d\n", zmq_msg_size (&message));

    zmq_msg_init_data (&message, "Hello", 6, NULL, NULL);
    printf ("Message data before sending: %s\n", (char *) zmq_msg_data
(&message));
    printf ("Message size before sending: %d\n", zmq_msg_size (&message));
    assert (zmq_send (socket, &message, 0) == 0);
    printf ("Message data after sending: %s\n", (char *) zmq_msg_data
(&message));
    printf ("Message size after sending: %d\n", zmq_msg_size (&message));


-
Pieter Hintjens
iMatix - www.imatix.com
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to