diff --git a/fairmq/shmem/Socket.h b/fairmq/shmem/Socket.h index 3a889fea..f6d282bb 100644 --- a/fairmq/shmem/Socket.h +++ b/fairmq/shmem/Socket.h @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (C) 2014-2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * Copyright (C) 2014-2023 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence (LGPL) version 3, * @@ -11,12 +11,12 @@ #include "Common.h" #include "Manager.h" #include "Message.h" -#include +#include // for assertm #include #include #include -#include -#include +#include // for zmq::HandleErrors, zmq::ShouldRetry +#include // for zmq::ZMsg #include @@ -124,8 +124,12 @@ class Socket final : public fair::mq::Socket } int elapsed = 0; + // make meta msg + zmq::ZMsg zmqMsg(sizeof(MetaHeader)); + std::memcpy(zmqMsg.Data(), &(shmMsg->fMeta), sizeof(MetaHeader)); + while (true) { - int nbytes = zmq_send(fSocket, &(shmMsg->fMeta), sizeof(MetaHeader), flags); + int nbytes = zmq_msg_send(zmqMsg.Msg(), fSocket, flags); if (nbytes > 0) { shmMsg->fQueued = true; ++fMessagesTx;