Skip to content

Commit dbbebe2

Browse files
author
Mauro Passerino
committed
Add num events to ExecutorEvent struct
Signed-off-by: Mauro Passerino <[email protected]>
1 parent 00e4a17 commit dbbebe2

File tree

4 files changed

+9
-6
lines changed

4 files changed

+9
-6
lines changed

rclcpp/include/rclcpp/executors/events_executor.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,13 +224,13 @@ class EventsExecutor : public rclcpp::Executor
224224
auto data = static_cast<const executors::EventsExecutorCallbackData *>(event_data);
225225

226226
executors::EventsExecutor * this_executor = data->executor;
227+
ExecutorEvent event = data->event;
228+
event.num_events = num_events;
227229

228230
// Event queue mutex scope
229231
{
230232
std::unique_lock<std::mutex> lock(this_executor->push_mutex_);
231-
for (size_t i = 0; i < num_events; i++) {
232-
this_executor->events_queue_->push(data->event);
233-
}
233+
this_executor->events_queue_->push(event);
234234
}
235235
// Notify that the event queue has some events in it.
236236
this_executor->events_queue_cv_.notify_one();

rclcpp/include/rclcpp/executors/events_executor_event_types.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ struct ExecutorEvent
3535
{
3636
const void * entity_id;
3737
ExecutorEventType type;
38+
size_t num_events;
3839
};
3940

4041
// The EventsExecutorCallbackData struct is what the listeners

rclcpp/include/rclcpp/experimental/buffers/simple_events_queue.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ class SimpleEventsQueue : public EventsQueue
4848
void
4949
push(const rclcpp::executors::ExecutorEvent & event)
5050
{
51-
event_queue_.push(event);
51+
for (size_t i = 0; i < event.num_events; i++) {
52+
event_queue_.push(event);
53+
}
5254
}
5355

5456
/**

rclcpp/src/rclcpp/executors/events_executor_entities_collector.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ EventsExecutorEntitiesCollector::get_callback_data(
603603
{
604604
// Create an entity callback data object and check if
605605
// we already have stored one like it
606-
ExecutorEvent event = {entity_id, event_type};
606+
ExecutorEvent event = {entity_id, event_type, 0};
607607
EventsExecutorCallbackData data(associated_executor_, event);
608608

609609
auto it = callback_data_map_.find(data);
@@ -630,7 +630,7 @@ EventsExecutorEntitiesCollector::remove_callback_data(
630630
{
631631
// Create an entity callback data object and check if
632632
// we already have stored one like it
633-
ExecutorEvent event = {entity_id, event_type};
633+
ExecutorEvent event = {entity_id, event_type, 0};
634634
EventsExecutorCallbackData data(associated_executor_, event);
635635

636636
auto it = callback_data_map_.find(data);

0 commit comments

Comments
 (0)