From 320a87d7b02efdaad0913d700de7ca1342e0691a Mon Sep 17 00:00:00 2001
From: Sebastian Hahta <joseha@utu.fi>
Date: Mon, 27 Jul 2020 16:09:01 +0300
Subject: [PATCH] fix deadlock

---
 components/structures/src/new_frame.cpp | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/components/structures/src/new_frame.cpp b/components/structures/src/new_frame.cpp
index 09b91e3af..2b45a62a3 100644
--- a/components/structures/src/new_frame.cpp
+++ b/components/structures/src/new_frame.cpp
@@ -281,16 +281,14 @@ void Frame::store() {
 				//data_.erase(c.first);
 				d.status = ChannelStatus::INVALID;
 			}
-
-			uint64_t sig = (uint64_t(id()) << 32) + static_cast<unsigned int>(c.first);
-			const auto &i = parent_->change_channel_.find(sig);
-
-			if (i != parent_->change_channel_.end()) i->second.trigger(*this, c.first);
 		}
 	}
 
 	for (auto c : changed_) {
 		parent_->change_.trigger(*this, c.first);
+		uint64_t sig = (uint64_t(id()) << 32) + static_cast<unsigned int>(c.first);
+		const auto &i = parent_->change_channel_.find(sig);
+		if (i != parent_->change_channel_.end()) i->second.trigger(*this, c.first);
 	}
 }
 
-- 
GitLab