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));