aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <[email protected]>2025-05-28 16:19:03 +0200
committerJarek Kobus <[email protected]>2025-06-02 13:10:06 +0000
commitaad010854c886a2f58f8da99edcc9b8ff3898d7f (patch)
tree6e4ac5a8e6c7c5a61064743ded58196d2b4e5849
parent611b2a129ffb814281c63ff3b993758030c2609f (diff)
Debugger: Use When with signal for debugServerTaskHEADmaster
-rw-r--r--src/plugins/debugger/debuggerruncontrol.cpp36
1 files changed, 15 insertions, 21 deletions
diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp
index 88ef60c6c4a..89a23457073 100644
--- a/src/plugins/debugger/debuggerruncontrol.cpp
+++ b/src/plugins/debugger/debuggerruncontrol.cpp
@@ -297,13 +297,9 @@ ExecutableItem fixupParamsRecipe(const Storage<DebuggerData> &storage)
});
}
-ExecutableItem debugServerRecipe(const Storage<DebuggerData> &storage, const SingleBarrier &barrier)
+ProcessTask debugServerTask(const Storage<DebuggerData> &storage)
{
- const auto useDebugServer = [storage] {
- return storage->runControl->usesDebugChannel() && !storage->runParameters.skipDebugServer();
- };
-
- const auto onSetup = [storage, barrier](Process &process) {
+ const auto onSetup = [storage](Process &process) {
process.setUtf8Codec();
DebuggerRunParameters &runParameters = storage->runParameters;
RunControl *runControl = storage->runControl;
@@ -411,8 +407,6 @@ ExecutableItem debugServerRecipe(const Storage<DebuggerData> &storage, const Sin
runControl->postMessage(process->readAllStandardError(), StdErrFormat, false);
});
- QObject::connect(&process, &Process::started, barrier->barrier(), &Barrier::advance);
-
return SetupResult::Continue;
};
@@ -420,13 +414,7 @@ ExecutableItem debugServerRecipe(const Storage<DebuggerData> &storage, const Sin
storage->runControl->postMessage(process.errorString(), ErrorMessageFormat);
};
- return Group {
- If (useDebugServer) >> Then {
- ProcessTask(onSetup, onDone, CallDoneIf::Error)
- } >> Else {
- Sync([barrier] { barrier->barrier()->advance(); })
- }
- };
+ return ProcessTask(onSetup, onDone, CallDoneIf::Error);
}
static ExecutableItem doneAwaiter(const Storage<DebuggerData> &storage)
@@ -720,10 +708,6 @@ Group debuggerRecipe(RunControl *runControl, const DebuggerRunParameters &initia
return terminalRecipe(storage, barrier);
};
- const auto debugServerKicker = [storage](const SingleBarrier &barrier) {
- return debugServerRecipe(storage, barrier);
- };
-
const auto onDone = [storage] {
if (storage->tempCoreFile.exists())
storage->tempCoreFile.removeFile();
@@ -731,6 +715,12 @@ Group debuggerRecipe(RunControl *runControl, const DebuggerRunParameters &initia
storage->runParameters.coreFile().removeFile();
};
+ const auto useDebugServer = [storage] {
+ return storage->runControl->usesDebugChannel() && !storage->runParameters.skipDebugServer();
+ };
+
+ const ExecutableItem enginesRecipe = startEnginesRecipe(storage);
+
return {
storage,
continueOnError,
@@ -739,8 +729,12 @@ Group debuggerRecipe(RunControl *runControl, const DebuggerRunParameters &initia
fixupParamsRecipe(storage),
coreFileRecipe(storage),
When (terminalKicker) >> Do {
- When (debugServerKicker) >> Do {
- startEnginesRecipe(storage)
+ If (useDebugServer) >> Then {
+ When (debugServerTask(storage), &Process::started) >> Do {
+ enginesRecipe
+ }
+ } >> Else {
+ enginesRecipe
}
}
}.withCancel(canceler()),