forked from qt-creator/qt-creator
ProjectExplorer: Kill dependent RunWorkers if dependencies go away
There is no point in e.g. keeping the QML profiler RunWorker going if the process has spontaneously stopped. Change-Id: Ifdae17231cb193fd220397fa0739a74871ceeab3 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -961,6 +961,22 @@ void RunControlPrivate::onWorkerStopped(RunWorker *worker)
|
||||
return;
|
||||
}
|
||||
|
||||
for (RunWorker *dependent : worker->d->stopDependencies) {
|
||||
switch (dependent->d->state) {
|
||||
case RunWorkerState::Done:
|
||||
case RunWorkerState::Failed:
|
||||
break;
|
||||
case RunWorkerState::Initialized:
|
||||
dependent->d->state = RunWorkerState::Done;
|
||||
break;
|
||||
default:
|
||||
debugMessage("Killing " + dependent->d->id + " as it depends on stopped " + workerId);
|
||||
dependent->d->state = RunWorkerState::Stopping;
|
||||
QTimer::singleShot(0, dependent, &RunWorker::initiateStop);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
debugMessage("Checking whether all stopped");
|
||||
bool allDone = true;
|
||||
for (RunWorker *worker : m_workers) {
|
||||
|
||||
Reference in New Issue
Block a user