Experimental function zmq_recviov doesnt work correctly in a couple of cases
1) VSM - you cannot hand out the 'data' address as it was not allocated on the heap 2) for other messages the 'data' address cannot be handed out either, as it not the address originally returned by malloc and hence cannot be passed to 'free'. see msg.cpp u.lmsg.content = (content_t*) malloc (sizeof (content_t) + size_); .... u.lmsg.content->data = u.lmsg.content + 1; So the function is changed to always malloc a data buffer and copy the data into it. There is a possible optimisation using memmove for the non-VSM case but that is not done yet.
Showing
tests/test_iov.cpp
0 → 100644
Please
register
or
sign in
to comment