diff options
author | Jarek Kobus <[email protected]> | 2023-09-27 16:16:43 +0200 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2023-09-27 15:09:56 +0000 |
commit | c05f9cacc6be1038a1a9ecee0af07ac84c01738c (patch) | |
tree | e2d841a1a7ac4427f119da5b566cb2fcd38e674b /src/plugins/ctfvisualizer/ctftracemanager.h | |
parent | c32022f0857dfca38359c7cc32a578a677af18d5 (diff) |
CtfVisualizer: Fix multithreading issues
Simplify the CtfVisualizerTool::loadJson(). Don't create a QThread
manually, but use TaskTree with AsyncTask instead.
Move pure parsing into the separate thread, and leave the
nlohmann::json event handling in the main thread.
Avoid moving m_modelAggregator between threads.
Fixes: QTCREATORBUG-29657
Change-Id: I0c6a9a4ea8298dbbdbafcddd338d39ad73c3f82b
Reviewed-by: Alessandro Portale <[email protected]>
Diffstat (limited to 'src/plugins/ctfvisualizer/ctftracemanager.h')
-rw-r--r-- | src/plugins/ctfvisualizer/ctftracemanager.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/ctfvisualizer/ctftracemanager.h b/src/plugins/ctfvisualizer/ctftracemanager.h index d376d010b5c..29694740297 100644 --- a/src/plugins/ctfvisualizer/ctftracemanager.h +++ b/src/plugins/ctfvisualizer/ctftracemanager.h @@ -5,13 +5,11 @@ #include "json/json.hpp" #include <QHash> +#include <QList> #include <QMap> #include <QObject> -#include <QVector> -namespace Timeline { -class TimelineModelAggregator; -} +namespace Timeline { class TimelineModelAggregator; } namespace CtfVisualizer { namespace Internal { @@ -34,7 +32,6 @@ public: void addEvent(const nlohmann::json &event); - void load(const QString &filename); void finalize(); bool isEmpty() const; @@ -46,6 +43,9 @@ public: void setThreadRestriction(const QString &tid, bool restrictToThisThread); bool isRestrictedTo(const QString &tid) const; + void updateStatistics(); + void clearAll(); + signals: void detailsRequested(const QString &title); @@ -53,10 +53,6 @@ protected: void addModelForThread(const QString &threadId, const QString &processId); void addModelsToAggregator(); - void updateStatistics(); - - void clearAll(); - Timeline::TimelineModelAggregator *const m_modelAggregator; CtfStatisticsModel *const m_statisticsModel; |