From 850cc6ae219a6069dc22b5cfbfe64df970cdeb72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Thu, 7 Jul 2022 23:25:18 -0300 Subject: [PATCH] This should fix the windows build for real. --- src/tools/ecode/plugins/formatter/formatterplugin.cpp | 10 ++++++---- src/tools/ecode/plugins/linter/linterplugin.cpp | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/tools/ecode/plugins/formatter/formatterplugin.cpp b/src/tools/ecode/plugins/formatter/formatterplugin.cpp index 3fd4fa5a4..cd8ef8646 100644 --- a/src/tools/ecode/plugins/formatter/formatterplugin.cpp +++ b/src/tools/ecode/plugins/formatter/formatterplugin.cpp @@ -192,10 +192,12 @@ void FormatterPlugin::runFormatter( UICodeEditor* editor, const Formatter& forma data += buffer.substr( 0, bytesRead ); } while ( bytesRead != 0 && subprocess_alive( &subprocess ) && !mShuttingDown ); - if ( subprocess_alive( &subprocess ) && !mShuttingDown ) - subprocess_join( &subprocess, &returnCode ); - else - returnCode = subprocess.return_status; + if ( mShuttingDown ) { + subprocess_terminate( &subprocess ); + return; + } + + subprocess_join( &subprocess, &returnCode ); subprocess_destroy( &subprocess ); // Log::info( "Formatter result:\n%s", data.c_str() ); diff --git a/src/tools/ecode/plugins/linter/linterplugin.cpp b/src/tools/ecode/plugins/linter/linterplugin.cpp index 098708e19..4eb745afe 100644 --- a/src/tools/ecode/plugins/linter/linterplugin.cpp +++ b/src/tools/ecode/plugins/linter/linterplugin.cpp @@ -271,10 +271,12 @@ void LinterPlugin::runLinter( std::shared_ptr doc, const Linter& l data += buffer.substr( 0, bytesRead ); } while ( bytesRead != 0 && subprocess_alive( &subprocess ) && !mShuttingDown ); - if ( subprocess_alive( &subprocess ) && !mShuttingDown ) - subprocess_join( &subprocess, &returnCode ); - else - returnCode = subprocess.return_status; + if ( mShuttingDown ) { + subprocess_terminate( &subprocess ); + return; + } + + subprocess_join( &subprocess, &returnCode ); subprocess_destroy( &subprocess ); if ( linter.hasNoErrorsExitCode && linter.noErrorsExitCode == returnCode ) {