FairMQ/fairmq/shmem
Giulio Eulisse 2a72d58766 Remove unneeded if when deleting NULL / 0 / nullptr
C++ standard dictates that NULL / 0 / nullptr is a valid argument for
delete which then simply has no effect:

"The value of the first argument supplied to a deallocation function may
be a null pointer value; if so, and if the deallocation function is one
supplied in the standard library, the call has no effect."

I therefore think in these particular case it's safe to remove the ifs.
2017-03-13 15:46:56 +01:00
..
FairMQContextSHM.cxx Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQContextSHM.h First version of the shared memory transport. 2016-12-18 14:50:58 +01:00
FairMQMessageSHM.cxx Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQMessageSHM.h Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQPollerSHM.cxx Remove unneeded if when deleting NULL / 0 / nullptr 2017-03-13 15:46:56 +01:00
FairMQPollerSHM.h First version of the shared memory transport. 2016-12-18 14:50:58 +01:00
FairMQShmManager.h Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQSocketSHM.cxx Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQSocketSHM.h Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQTransportFactorySHM.cxx Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
FairMQTransportFactorySHM.h Adding multiple transports support & other fixes: 2017-02-23 06:47:09 +01:00
README.md First version of the shared memory transport. 2016-12-18 14:50:58 +01:00

Shared Memory transport

First version of the shared memory transport. To try with existing devices, run the devices with --transport shmem option.

The transport manages shared memory via boost::interprocess library. The transfer of the meta data, required to locate the content in the share memory, is done via ZeroMQ. The transport supports all communication patterns where a single message is received by a single receiver. For multiple receivers for the same message, the message has to be copied.

Under development:

  • Cleanup of the shared memory segment in case all devices crash. Currently at least one device has to stop properly for a cleanup.
  • Implement more than one transport per device.
  • Configuration of the shared memory size (currently hard-coded).