machines-in-motion / shared_memory

realtime interprocess communication

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

continuous integration check_main_branch_and_deploy_doc

Readme

what it is

  • This library is a convenient wrapper over boost:interprocess. It is meant to be trivial to use, and to make interprocess communication between processes trivial
  • It is meant to be realtime friendly (no dynamic allocation)

how it works / API

An example covering the complete API is in src/examples . You may run the related executables.

how to run the unit tests

colcon build
colcon test

After the tests have run, use the following to get an overview of the results:

colcon test-result

Add --verbose to get more information in case there were failures.

Limitations

  • There must be in the code a "manual" cleanup of the memory. See for example: set_data

  • Arrays, map and vectors are expected to be of a predefined fixed size. Even when using the 'get' methods, they are expected to have been declared with the correct size (and with the correct set of keys for maps)

Removing shared memory file

On linux, the shared memory mappings are created under /dev/shm. If necessary (e.g. if a program was creating the shared memory with the wrong permissions), these files can be delted manually.

About

realtime interprocess communication

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 95.8%Language:CMake 4.2%