PerfProfiler: Remove private fields of PerfProfilerRunner

Task-number: QTCREATORBUG-29168
Change-Id: If2a7c7d8159f9c6c1fc58765285d51325fd41cef
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2025-01-03 12:49:59 +01:00
parent c4e7ecf659
commit 7c63aaedaf

View File

@@ -91,18 +91,19 @@ public:
{ {
setId("PerfProfilerRunner"); setId("PerfProfilerRunner");
m_perfParserWorker = new PerfParserWorker(runControl); PerfParserWorker *perfParserWorker = new PerfParserWorker(runControl);
addStopDependency(m_perfParserWorker); addStopDependency(perfParserWorker);
// If the parser is gone, there is no point in going on. // If the parser is gone, there is no point in going on.
m_perfParserWorker->setEssential(true); perfParserWorker->setEssential(true);
m_perfRecordWorker = qobject_cast<ProcessRunner *>(runControl->createWorker("PerfRecorder")); ProcessRunner *perfRecordWorker
= qobject_cast<ProcessRunner *>(runControl->createWorker("PerfRecorder"));
if (!m_perfRecordWorker) { if (!perfRecordWorker) {
m_perfRecordWorker = new ProcessRunner(runControl); perfRecordWorker = new ProcessRunner(runControl);
m_perfRecordWorker->suppressDefaultStdOutHandling(); perfRecordWorker->suppressDefaultStdOutHandling();
m_perfRecordWorker->setStartModifier([this, runControl] { perfRecordWorker->setStartModifier([this, runControl, perfRecordWorker] {
const Store perfArgs = runControl->settingsData(PerfProfiler::Constants::PerfSettingsId); const Store perfArgs = runControl->settingsData(PerfProfiler::Constants::PerfSettingsId);
const QString recordArgs = perfArgs[Constants::PerfRecordArgsId].toString(); const QString recordArgs = perfArgs[Constants::PerfRecordArgsId].toString();
@@ -111,20 +112,20 @@ public:
cmd.addArgs({"-o", "-", "--"}); cmd.addArgs({"-o", "-", "--"});
cmd.addCommandLineAsArgs(runControl->commandLine(), CommandLine::Raw); cmd.addCommandLineAsArgs(runControl->commandLine(), CommandLine::Raw);
m_perfRecordWorker->setCommandLine(cmd); perfRecordWorker->setCommandLine(cmd);
m_perfRecordWorker->setWorkingDirectory(runControl->workingDirectory()); perfRecordWorker->setWorkingDirectory(runControl->workingDirectory());
m_perfRecordWorker->setEnvironment(runControl->environment()); perfRecordWorker->setEnvironment(runControl->environment());
appendMessage("Starting Perf: " + cmd.toUserOutput(), NormalMessageFormat); appendMessage("Starting Perf: " + cmd.toUserOutput(), NormalMessageFormat);
}); });
// In the local case, the parser won't automatically stop when the recorder does. So we need // In the local case, the parser won't automatically stop when the recorder does. So we need
// to mark the recorder as essential, too. // to mark the recorder as essential, too.
m_perfRecordWorker->setEssential(true); perfRecordWorker->setEssential(true);
} }
addStartDependency(m_perfRecordWorker); addStartDependency(perfRecordWorker);
m_perfParserWorker->addStartDependency(m_perfRecordWorker); perfParserWorker->addStartDependency(perfRecordWorker);
m_perfParserWorker->addStopDependency(m_perfRecordWorker); perfParserWorker->addStopDependency(perfRecordWorker);
PerfProfilerTool::instance()->onWorkerCreation(runControl); PerfProfilerTool::instance()->onWorkerCreation(runControl);
auto tool = PerfProfilerTool::instance(); auto tool = PerfProfilerTool::instance();
@@ -134,17 +135,13 @@ public:
connect(runControl, &RunControl::stopped, PerfProfilerTool::instance(), connect(runControl, &RunControl::stopped, PerfProfilerTool::instance(),
&PerfProfilerTool::onRunControlFinished); &PerfProfilerTool::onRunControlFinished);
PerfDataReader *reader = m_perfParserWorker->reader(); PerfDataReader *reader = perfParserWorker->reader();
connect(m_perfRecordWorker, &ProcessRunner::stdOutData, connect(perfRecordWorker, &ProcessRunner::stdOutData,
this, [this, reader](const QByteArray &data) { this, [this, reader](const QByteArray &data) {
if (!reader->feedParser(data)) if (!reader->feedParser(data))
reportFailure(Tr::tr("Failed to transfer Perf data to perfparser.")); reportFailure(Tr::tr("Failed to transfer Perf data to perfparser."));
}); });
} }
private:
PerfParserWorker *m_perfParserWorker = nullptr;
ProcessRunner *m_perfRecordWorker = nullptr;
}; };
// PerfProfilerRunWorkerFactory // PerfProfilerRunWorkerFactory