Add Thread Guard for debugging simple threading issues (#4254)
* Add ThreadGuard class * Use ThreadGuard when accessing a ChannelView's messageSnapshot
This commit is contained in:
@@ -628,6 +628,7 @@ const boost::optional<MessageElementFlags> &ChannelView::getOverrideFlags()
|
||||
|
||||
LimitedQueueSnapshot<MessageLayoutPtr> &ChannelView::getMessagesSnapshot()
|
||||
{
|
||||
this->snapshotGuard_.guard();
|
||||
if (!this->paused() /*|| this->scrollBar_->isVisible()*/)
|
||||
{
|
||||
this->snapshot_ = this->messages_.getSnapshot();
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "messages/LimitedQueue.hpp"
|
||||
#include "messages/LimitedQueueSnapshot.hpp"
|
||||
#include "messages/Selection.hpp"
|
||||
#include "util/ThreadGuard.hpp"
|
||||
#include "widgets/BaseWidget.hpp"
|
||||
|
||||
#include <pajlada/signals/signal.hpp>
|
||||
@@ -270,6 +271,7 @@ private:
|
||||
boost::optional<MessageElementFlags> overrideFlags_;
|
||||
MessageLayoutPtr lastReadMessage_;
|
||||
|
||||
ThreadGuard snapshotGuard_;
|
||||
LimitedQueueSnapshot<MessageLayoutPtr> snapshot_;
|
||||
|
||||
ChannelPtr channel_ = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user