aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov (VMware) <y.karadz@gmail.com>2019-07-09 18:56:49 +0300
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-07-09 21:37:36 -0400
commit5b8f0144949f57eb2ee8b86a0e41d6a6f4b93bbd (patch)
tree374f6b0aeed46c006a0cbb80e851100d76569ff2
parentadaba4d98daa45142cdd44aae56eda0011f136c3 (diff)
downloadtrace-cmd-5b8f0144949f57eb2ee8b86a0e41d6a6f4b93bbd.tar.gz
kernel-shark: Disconnect "capture errors" before closing KernelShark GUI
This is done because we do not want to show error messages if the Capture dialog is not closed. Link: http://lore.kernel.org/linux-trace-devel/20190709155650.2345-8-y.karadz@gmail.com Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel-shark/src/KsMainWindow.cpp15
-rw-r--r--kernel-shark/src/KsMainWindow.hpp2
2 files changed, 15 insertions, 2 deletions
diff --git a/kernel-shark/src/KsMainWindow.cpp b/kernel-shark/src/KsMainWindow.cpp
index 752a17ae..8826cf5c 100644
--- a/kernel-shark/src/KsMainWindow.cpp
+++ b/kernel-shark/src/KsMainWindow.cpp
@@ -155,6 +155,16 @@ KsMainWindow::~KsMainWindow()
_data.clear();
+ /*
+ * Do not show error messages if the "capture" process is still
+ * running (Capture dialog is not closed).
+ */
+ if (_capture.state() != QProcess::NotRunning) {
+ disconnect(_captureErrorConnection);
+ _capture.close();
+ _capture.waitForFinished();
+ }
+
if (kshark_instance(&kshark_ctx))
kshark_free(kshark_ctx);
}
@@ -1129,8 +1139,9 @@ void KsMainWindow::_initCapture()
connect(&_capture, SIGNAL(finished(int, QProcess::ExitStatus)),
this, SLOT(_captureFinished(int, QProcess::ExitStatus)));
- connect(&_capture, &QProcess::errorOccurred,
- this, &KsMainWindow::_captureError);
+ _captureErrorConnection =
+ connect(&_capture, &QProcess::errorOccurred,
+ this, &KsMainWindow::_captureError);
connect(&_captureLocalServer, &QLocalServer::newConnection,
this, &KsMainWindow::_readSocket);
diff --git a/kernel-shark/src/KsMainWindow.hpp b/kernel-shark/src/KsMainWindow.hpp
index 22700d99..62e66a00 100644
--- a/kernel-shark/src/KsMainWindow.hpp
+++ b/kernel-shark/src/KsMainWindow.hpp
@@ -159,6 +159,8 @@ private:
QSettings _settings;
+ QMetaObject::Connection _captureErrorConnection;
+
void _open();
void _restoreSession();