From bf7a8f8f1615741b925c60ec357693b778e7ee9c Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Wed, 29 Nov 2023 01:54:44 +0100
Subject: [PATCH] Improve output management on failure in parallel

---
 src/utils/SignalManager.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/utils/SignalManager.cpp b/src/utils/SignalManager.cpp
index f27211772..62505d7b4 100644
--- a/src/utils/SignalManager.cpp
+++ b/src/utils/SignalManager.cpp
@@ -54,6 +54,8 @@ SignalManager::pauseForDebug(int signal)
 {
   if (std::string(PUGS_BUILD_TYPE) != "Release") {
     if (s_pause_on_error) {
+      // Each failing process must write
+      std::cerr.clear();
       std::cerr << "\n======================================\n"
                 << rang::style::reset << rang::fg::reset << rang::style::bold << "to attach gdb to this process run\n"
                 << "\tgdb -pid " << rang::fg::red << getpid() << rang::fg::reset << '\n'
@@ -77,7 +79,7 @@ SignalManager::handler(int signal)
     std::signal(SIGABRT, SIG_DFL);
 
     // Each failing process must write
-    std::cerr.setstate(std::ios::goodbit);
+    std::cerr.clear();
 
     std::cerr << BacktraceManager{} << '\n';
 
-- 
GitLab