diff options
| author | Antti Määttä <antti.maatta@qt.io> | 2023-01-16 12:45:44 +0200 |
|---|---|---|
| committer | Antti Määttä <antti.maatta@qt.io> | 2023-02-10 18:03:34 +0200 |
| commit | b652d9753bb474b3bc6c881dcb4b40a5a01ddcff (patch) | |
| tree | 28dffdc915f919701c0f8da756ec8f5e40fcb7ea /src/corelib/tracing/qctfplugin.cpp | |
| parent | 29e739f93852dcf3d431bd944b3ec7ac5c7bf3fc (diff) | |
CTF: Fix plugin cleanup
Handle cleanup of the CTF plugin correctly. The cleanup causes recursive
trace event so the plugin needs to handle this.
Pick-to: 6.5
Change-Id: Id6f4c6efe95e51332a8be97fecdf7886ba173e43
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
Diffstat (limited to 'src/corelib/tracing/qctfplugin.cpp')
| -rw-r--r-- | src/corelib/tracing/qctfplugin.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/corelib/tracing/qctfplugin.cpp b/src/corelib/tracing/qctfplugin.cpp index 4e966b32f85..db052fa6e0c 100644 --- a/src/corelib/tracing/qctfplugin.cpp +++ b/src/corelib/tracing/qctfplugin.cpp @@ -19,24 +19,38 @@ public: { } - ~QCtfTracePlugin() = default; + ~QCtfTracePlugin() + { + m_cleanup = true; + QCtfLibImpl::cleanup(); + } bool tracepointEnabled(const QCtfTracePointEvent &point) override { + if (m_cleanup) + return false; return QCtfLibImpl::instance()->tracepointEnabled(point); } void doTracepoint(const QCtfTracePointEvent &point, const QByteArray &arr) override { + if (m_cleanup) + return; QCtfLibImpl::instance()->doTracepoint(point, arr); } bool sessionEnabled() override { + if (m_cleanup) + return false; return QCtfLibImpl::instance()->sessionEnabled(); } QCtfTracePointPrivate *initializeTracepoint(const QCtfTracePointEvent &point) override { + if (m_cleanup) + return nullptr; return QCtfLibImpl::instance()->initializeTracepoint(point); } +private: + bool m_cleanup = false; }; #include "qctfplugin.moc" |
