Skip to content

Commit 472357d

Browse files
committed
Invalidate signal chains with multiple mergers in a row
1 parent b146e56 commit 472357d

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

Source/Processors/Merger/Merger.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ void Merger::updateSettings()
229229

230230
if (sourceNodeA != nullptr)
231231
{
232+
if (sourceNodeA->isMerger())
233+
{
234+
isEnabled = false;
235+
messageChannel = std::make_unique<EventChannel>(*AccessClass::getMessageCenter()->messageCenter->getMessageChannel());
236+
messageChannel->addProcessor(processorInfo.get());
237+
return;
238+
}
239+
232240
LOGD(" Merger source A found.");
233241
continuousChannelGlobalIndex = addSettingsFromSourceNode(sourceNodeA, continuousChannelGlobalIndex);
234242
isEnabled &= sourceNodeA->isEnabled;
@@ -246,6 +254,18 @@ void Merger::updateSettings()
246254

247255
if (sourceNodeB != nullptr)
248256
{
257+
if (sourceNodeB->isMerger())
258+
{
259+
isEnabled = false;
260+
261+
if (messageChannel == nullptr)
262+
{
263+
messageChannel = std::make_unique<EventChannel>(*AccessClass::getMessageCenter()->messageCenter->getMessageChannel());
264+
messageChannel->addProcessor(processorInfo.get());
265+
}
266+
return;
267+
}
268+
249269
LOGD(" Merger source B found.");
250270
continuousChannelGlobalIndex = addSettingsFromSourceNode(sourceNodeB, continuousChannelGlobalIndex);
251271
isEnabled &= sourceNodeB->isEnabled;

0 commit comments

Comments
 (0)