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};
9
9
10
10
/// This is locked whenever initializing or dropping any middleware entity
11
11
/// 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
14
16
/// 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.
15
22
pub ( crate ) static ENTITY_LIFECYCLE_MUTEX : Mutex < ( ) > = Mutex :: new ( ( ) ) ;
16
23
17
24
impl Drop for rcl_context_t {
You can’t perform that action at this time.
0 commit comments