ros2 multiple executors in the same process

asked 2020-08-25 12:33:01 -0600

updated 2020-08-25 14:23:39 -0600

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.

edit retag flag offensive close merge delete

Comments

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.

found what?

gvdhoorn gravatar image gvdhoorn  ( 2020-08-25 13:20:14 -0600 )edit
1

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.

tyler-picknik gravatar image tyler-picknik  ( 2020-08-25 14:21:35 -0600 )edit