mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
Shmem: Fix handling of empty message parts
This commit is contained in:
parent
c34d1f0946
commit
85a3a254d4
|
@ -272,7 +272,18 @@ int64_t FairMQSocketSHM::Send(vector<FairMQMessagePtr>& msgVec, const int timeou
|
|||
for (auto& msg : msgVec)
|
||||
{
|
||||
zmq_msg_t* metaMsg = static_cast<FairMQMessageSHM*>(msg.get())->GetMessage();
|
||||
memcpy(metas++, zmq_msg_data(metaMsg), sizeof(MetaHeader));
|
||||
if (zmq_msg_size(metaMsg) > 0) {
|
||||
memcpy(metas++, zmq_msg_data(metaMsg), sizeof(MetaHeader));
|
||||
} else {
|
||||
// if the message is empty, create meta data to reflect this
|
||||
// (always creating meta data for empty messages would add an unnecessary allocation for the receive case, so we do it lazily here)
|
||||
MetaHeader hdr;
|
||||
hdr.fSize = 0;
|
||||
hdr.fHandle = -1;
|
||||
hdr.fRegionId = 0;
|
||||
hdr.fHint = 0;
|
||||
memcpy(metas++, &hdr, sizeof(MetaHeader));
|
||||
}
|
||||
}
|
||||
|
||||
while (!fInterrupted)
|
||||
|
|
Loading…
Reference in New Issue
Block a user