From a38d2578008c93b52b7dc5b28039123c20997e74 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 11 Sep 2019 00:01:42 +1000 Subject: [PATCH] added more threading locks --- app/node/node.cpp | 8 +++++++- app/node/node.h | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/node/node.cpp b/app/node/node.cpp index 186c03532..aae84fed2 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -175,7 +175,13 @@ void Node::ClearCachedValuesInParameters(const rational &start_range, const rati QVariant Node::Run(NodeOutput* output, const rational& time) { - return Value(output, time); + run_lock_.lock(); + + QVariant v = Value(output, time); + + run_lock_.unlock(); + + return v; } NodeParam *Node::ParamAt(int index) diff --git a/app/node/node.h b/app/node/node.h index eff4c4fe8..571339afb 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -281,10 +281,15 @@ private: NodeOutput* last_processed_parameter_; /** - * @brief Used for thread safety + * @brief Used for thread safety from main thread */ QMutex lock_; + /** + * @brief Used for thread safety between multiple threads + */ + QMutex run_lock_; + private slots: void InputChanged(rational start, rational end);