logic: switch back to handling messages in sequence by default

* handling all messages in parallel caused UI synchronization issues
* for now the only message that requests to be handled in parallel is MessageActivateTokens
This commit is contained in:
malte_langkabel
2017-05-15 11:59:15 +02:00
parent 0d244b0224
commit 00c696b385
3 changed files with 25 additions and 2 deletions
+14 -1
View File
@@ -8,7 +8,8 @@ class MessageBase
{
public:
MessageBase()
: m_isReplayed(false)
: m_isParallel(false)
, m_isReplayed(false)
, m_isReplayCleared(false)
, m_sendAsTask(true)
, m_keepContent(false)
@@ -34,6 +35,16 @@ public:
m_sendAsTask = sendAsTask;
}
bool isParallel() const
{
return m_isParallel;
}
void setIsParallel(bool isParallel)
{
m_isParallel = isParallel;
}
bool isReplayed() const
{
return m_isReplayed;
@@ -95,6 +106,8 @@ public:
}
private:
bool m_isParallel;
bool m_isReplayed;
bool m_isReplayCleared;
+10 -1
View File
@@ -8,6 +8,7 @@
#include "utility/messaging/MessageFilter.h"
#include "utility/messaging/MessageListenerBase.h"
#include "utility/scheduling/TaskGroupParallel.h"
#include "utility/scheduling/TaskGroupSequence.h"
#include "utility/scheduling/TaskLambda.h"
std::shared_ptr<MessageQueue> MessageQueue::getInstance()
@@ -265,7 +266,15 @@ void MessageQueue::sendMessage(std::shared_ptr<MessageBase> message)
void MessageQueue::sendMessageAsTask(std::shared_ptr<MessageBase> message, bool asNextTask) const
{
std::shared_ptr<TaskGroupParallel> taskGroup = std::make_shared<TaskGroupParallel>();
std::shared_ptr<TaskGroup> taskGroup;
if (message->isParallel())
{
taskGroup = std::make_shared<TaskGroupParallel>();
}
else
{
taskGroup = std::make_shared<TaskGroupSequence>();
}
{
std::lock_guard<std::mutex> lock(m_listenersMutex);
@@ -15,6 +15,7 @@ public:
, isAggregation(false)
, isFromSearch(false)
{
setIsParallel(true);
setKeepContent(other->keepContent());
}