From b20a96d32fdee24ce354080f6b5349abf77ab1f7 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Thu, 16 Jun 2016 15:17:06 +0300 Subject: [PATCH] add fix for possible race condition (#96) --- patches/fix-race-condition.patch | 15 +++++++++++++++ sources/awesome-widget/plugin/awkeys.cpp | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 patches/fix-race-condition.patch diff --git a/patches/fix-race-condition.patch b/patches/fix-race-condition.patch new file mode 100644 index 0000000..14d79ea --- /dev/null +++ b/patches/fix-race-condition.patch @@ -0,0 +1,15 @@ +diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp +index 1744fb7..f483209 100644 +--- a/sources/awesome-widget/plugin/awkeys.cpp ++++ b/sources/awesome-widget/plugin/awkeys.cpp +@@ -234,8 +234,10 @@ void AWKeys::reinitKeys(const QStringList currentKeys) + void AWKeys::updateTextData() + { + // do not do it in parallel to avoid race condition ++ m_mutex.lock(); + calculateValues(); + QString text = parsePattern(keyOperator->pattern()); ++ m_mutex.unlock(); + + emit(needTextToBeUpdated(text)); + emit(dataAggregator->updateData(values)); diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp index 1744fb7..f483209 100644 --- a/sources/awesome-widget/plugin/awkeys.cpp +++ b/sources/awesome-widget/plugin/awkeys.cpp @@ -234,8 +234,10 @@ void AWKeys::reinitKeys(const QStringList currentKeys) void AWKeys::updateTextData() { // do not do it in parallel to avoid race condition + m_mutex.lock(); calculateValues(); QString text = parsePattern(keyOperator->pattern()); + m_mutex.unlock(); emit(needTextToBeUpdated(text)); emit(dataAggregator->updateData(values));