File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -9,9 +9,16 @@ use crate::{RclrsError, ToResult};
99
1010/// This is locked whenever initializing or dropping any middleware entity
1111/// because we have found issues in RCL and some RMW implementations that
12- /// make it unsafe to simultaneously initialize and/or drop various types of
13- /// entities. It seems these C and C++ based libraries will regularly use
12+ /// make it unsafe to simultaneously initialize and/or drop middleware
13+ /// entities such as [`rcl_context_t`] and [`rcl_node_t`] as well middleware
14+ /// primitives such as [`rcl_publisher_t`], [`rcl_subscription_t`], etc.
15+ /// It seems these C and C++ based libraries will regularly use
1416/// unprotected global variables in their object initialization and cleanup.
17+ ///
18+ /// Further discussion with the RCL team may help to improve the RCL
19+ /// documentation to specifically call out where these risks are present. For
20+ /// now we lock this mutex for any RCL function that carries reasonable suspicion
21+ /// of a risk.
1522pub ( crate ) static ENTITY_LIFECYCLE_MUTEX : Mutex < ( ) > = Mutex :: new ( ( ) ) ;
1623
1724impl Drop for rcl_context_t {
You can’t perform that action at this time.
0 commit comments