ros2 multiple executors in the same process
Is having multiple executors in one process a bad practice? If so, why?
The reason I ask this is right now in MoveIt2 PSM starts a SingleThreadedExecutor when you initialize it. That PSM is then owned by something started in a composable node (which starts it's own executor).
I built with thread sanitizer to see if I could figure out why I was seeing a weird deadlock on travis (that I can't reproduce locally) and found this:
Thread sanatizer is reporting a data race (in locking a mutex, which could result in the mutex being "locked" twice) between rmw_fastrtps_shared_cpp::__rmw_destroy_guard_condition
and rmw_fastrtps_shared_cpp::__rmw_wait
.
found what?
I edited my question. The point of my question was more "am I using this wrong" or "did I misunderstand some documentation around Executors"? If what I found was a bug, that's fine too... I'll see if I can figure it out.