15 #ifndef FAIR_MQ_SHMEM_REGION_H_ 16 #define FAIR_MQ_SHMEM_REGION_H_ 20 #include <FairMQLogger.h> 21 #include <FairMQUnmanagedRegion.h> 23 #include <boost/interprocess/managed_shared_memory.hpp> 24 #include <boost/interprocess/file_mapping.hpp> 25 #include <boost/interprocess/ipc/message_queue.hpp> 29 #include <condition_variable> 30 #include <unordered_map> 43 Region(
Manager& manager, uint64_t
id, uint64_t size,
bool remote, RegionCallback callback =
nullptr,
const std::string& path =
"",
int flags = 0);
50 void InitializeQueues();
52 void StartSendingAcks();
54 void StartReceivingAcks();
64 std::string fQueueName;
65 boost::interprocess::shared_memory_object fShmemObject;
67 boost::interprocess::file_mapping fFileMapping;
68 boost::interprocess::mapped_region fRegion;
71 std::condition_variable fBlockSendCV;
72 std::vector<RegionBlock> fBlocksToFree;
73 const std::size_t fAckBunchSize = 256;
74 std::unique_ptr<boost::interprocess::message_queue> fQueue;
76 std::thread fReceiveAcksWorker;
77 std::thread fSendAcksWorker;
78 RegionCallback fCallback;
Tools for interfacing containers to the transport via polymorphic allocators.
Definition: DeviceRunner.h:23