Support multiple participants in cyclone dds

I made this PR before migrating the repository here, to Gitlab, in Github. I reopen this issue since I was able to reproduce it again and now I have the steps to show it. I saw here that you are using a July's pinned version of CycloneDDS for CI. Since this version is outdated, there's no issue in using the same topic entity for different participants (and in theory, is wrong).

You can see this closed issue where the current behaviour of using different participants is not intended at all. In particular, this issue was tackled in this PR that got merged on September. I tested my change with the current repository and it works fine. If updating to a new version of cyclone is desired, then this PR is also needed to compile and make performance test work with the latest changes. Switching to that PR without this one, will make you fail to create any subscriber or more than one publisher (since here it starts creating the publishers first and there's only one publisher and one subscriber for the examples provided in the README).

So, to reproduce the issue:

  1. Checkout to this PR
  2. Apply this change.
  3. Build performance_test.
  4. Run RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 run performance_test perf_test -c CycloneDDS -l log -t Array1k --max_runtime 2
  5. "failed to create data reader" message is shown up.

Merge request reports

Loading