Skip to content

Commit de09169

Browse files
committed
fix: only add pd trigger if it was generated
1 parent 64e93cb commit de09169

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

include/robotkernel/process_data.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,8 @@ class process_data :
332332
*/
333333
static pd_data_types get_data_type(const std::string& dt_name);
334334

335+
//! Return if trigger was generated by pd
336+
bool is_trigger_dev_generated() const { return trigger_dev_generated; }
335337

336338
public:
337339
volatile uint64_t pd_cookie;

src/kernel.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ void kernel::add_device(sp_device_t req) {
891891
device_map[map_index] = req;
892892

893893
const auto& pd = std::dynamic_pointer_cast<process_data>(req);
894-
if (pd != nullptr) {
894+
if ((pd != nullptr) && pd->is_trigger_dev_generated()) {
895895
add_device(pd->trigger_dev);
896896
}
897897

@@ -904,7 +904,7 @@ void kernel::remove_device(sp_device_t req) {
904904
auto map_index = req->id();
905905

906906
const auto& pd = std::dynamic_pointer_cast<process_data>(req);
907-
if (pd != nullptr) {
907+
if ((pd != nullptr) && pd->is_trigger_dev_generated()) {
908908
remove_device(pd->trigger_dev);
909909
}
910910

0 commit comments

Comments
 (0)