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:
@@ -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;
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user