Hi Emmanuel,

> Do you confirm my understanding of this problem?
> If yes, how is it possible to send small message which will be received
> aligned in a 4 bytes boundary?

This can't be done in a generic way. When sending messages initialised 
using zmq_msg_init_data() via inproc, you get the same buffer that was 
sent by the sender. I.e. if the sender aligned the buffer in a special 
way, that's what you'll get.

In general, it's advisable to parse the messages in 
alignment-independent manner. 0MQ itself does so for its internal data, 
see src/wire.hpp. That'll make your application more portable.

However, if this is considered an useful optimisation. zmq_msg_t (or 
rather it's equivalent in 3.0) could be restructured in such a way that 
the buffer is located at the beginning of the structure. That way it 
will be aligned in the same way the structures are (see c specs). Note 
though, that this will not be a trivial exercise as you are going to 
mess with compiler's standard way of aligning structure members for 
which there is no standard means in the language.

Martin
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to