diff options
author | Jarek Kobus <[email protected]> | 2025-05-28 16:19:03 +0200 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2025-06-02 13:10:06 +0000 |
commit | aad010854c886a2f58f8da99edcc9b8ff3898d7f (patch) | |
tree | 6e4ac5a8e6c7c5a61064743ded58196d2b4e5849 | |
parent | 611b2a129ffb814281c63ff3b993758030c2609f (diff) |
Change-Id: I9919c570b2922d0bc1b778533a95b7b1d23cf2c9
Reviewed-by: hjk <[email protected]>
-rw-r--r-- | src/plugins/debugger/debuggerruncontrol.cpp | 36 |
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()), |