HI all,
i use the zmq_msg_t strutture for send and receive message. I use the
zmq_msg_init_data to initialize message with buffer that i have already
allocate. In this way i try to achieve a non-copy memory using zmq. The piece
of cose that do this follow below:
err = zmq_msg_init_data(&header_msg, header_buffer, DIRECT_IO_HEADER_SIZE,
ZMQDirectIOServerFree, NULL);
err = zmq_msg_recv(&header_msg, socket, 0);
if(err == -1 || err != DIRECT_IO_HEADER_SIZE) {
err = zmq_msg_close(&header_msg);
continue;
}
err = zmq_msg_close(&header_msg);
< header_buffer is not filled>
Unfortunaly when the zmq_msg_recv (with the right reader byte) into the
header_buffer is not write anythings. using the code below, obviously, all work
bit it’s do a copy from the internal message strutture and my buffer.
err = zmq_recv(socket, header_buffer, DIRECT_IO_HEADER_SIZE, 0);
if(err == -1 || err != DIRECT_IO_HEADER_SIZE) {
continue;
}
< header_buffer IS filled>
It seems that is not possible to use zmq_msg_init_data in receivement mode for
use non-copy memory features.
I fault in something or isn-t possible to do?
ZMQ version used is 30205 (from api)
Thanks in advanced
Claudio_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev