@@ -67,7 +67,7 @@ class SubscriptionIntraProcess : public SubscriptionIntraProcessBase
6767 const std::string & topic_name,
6868 rmw_qos_profile_t qos_profile,
6969 rclcpp::IntraProcessBufferType buffer_type)
70- : SubscriptionIntraProcessBase(topic_name, qos_profile),
70+ : SubscriptionIntraProcessBase(context, topic_name, qos_profile),
7171 any_callback_ (callback)
7272 {
7373 if (!std::is_same<MessageT, CallbackMessageT>::value) {
@@ -80,18 +80,6 @@ class SubscriptionIntraProcess : public SubscriptionIntraProcessBase
8080 qos_profile,
8181 allocator);
8282
83- // Create the guard condition.
84- rcl_guard_condition_options_t guard_condition_options =
85- rcl_guard_condition_get_default_options ();
86-
87- gc_ = rcl_get_zero_initialized_guard_condition ();
88- rcl_ret_t ret = rcl_guard_condition_init (
89- &gc_, context->get_rcl_context ().get (), guard_condition_options);
90-
91- if (RCL_RET_OK != ret) {
92- throw std::runtime_error (" SubscriptionIntraProcess init error initializing guard condition" );
93- }
94-
9583 TRACEPOINT (
9684 rclcpp_subscription_callback_added,
9785 static_cast <const void *>(this ),
@@ -104,15 +92,7 @@ class SubscriptionIntraProcess : public SubscriptionIntraProcessBase
10492#endif
10593 }
10694
107- ~SubscriptionIntraProcess ()
108- {
109- if (rcl_guard_condition_fini (&gc_) != RCL_RET_OK) {
110- RCUTILS_LOG_ERROR_NAMED (
111- " rclcpp" ,
112- " Failed to destroy guard condition: %s" ,
113- rcutils_get_error_string ().str );
114- }
115- }
95+ ~SubscriptionIntraProcess () = default ;
11696
11797 bool
11898 is_ready (rcl_wait_set_t * wait_set)
@@ -168,8 +148,7 @@ class SubscriptionIntraProcess : public SubscriptionIntraProcessBase
168148 void
169149 trigger_guard_condition ()
170150 {
171- rcl_ret_t ret = rcl_trigger_guard_condition (&gc_);
172- (void )ret;
151+ gc_.trigger ();
173152 }
174153
175154 template <typename T>
0 commit comments