From ad6e11f60e55f907af37471423fb869af21b1a0b Mon Sep 17 00:00:00 2001
From: Sam Yates <halfflat@gmail.com>
Date: Tue, 5 Jul 2016 17:47:21 +0200
Subject: [PATCH] Further simplification of debug_emit_trace logic.
---
src/util/debug.hpp | 23 ++++++++---------------
1 file changed, 8 insertions(+), 15 deletions(-)
diff --git a/src/util/debug.hpp b/src/util/debug.hpp
index f12f9ec4..1d0ef633 100644
--- a/src/util/debug.hpp
+++ b/src/util/debug.hpp
@@ -1,7 +1,6 @@
#pragma once
#include <iostream>
-#include <memory>
#include <sstream>
#include <mutex>
@@ -31,26 +30,20 @@ extern std::mutex global_debug_cerr_mutex;
template <typename... Args>
void debug_emit_trace(const char* file, int line, const char* varlist, const Args&... args) {
- constexpr bool multithreaded = nest::mc::threading::multithreaded();
+ if (nest::mc::threading::multithreaded()) {
+ std::stringstream buffer;
- std::unique_ptr<std::ostream> buffer;
- std::ostream* out = &std::cerr;
+ debug_emit_trace_leader(buffer, file, line, varlist);
+ debug_emit(buffer, args...);
- if (multithreaded) {
- buffer.reset(new std::stringstream());
- out = buffer.get();
- }
-
- debug_emit_trace_leader(*out, file, line, varlist);
- debug_emit(*out, args...);
-
- if (multithreaded) {
std::lock_guard<std::mutex> guard(global_debug_cerr_mutex);
- std::cerr << out->rdbuf();
+ std::cerr << buffer.rdbuf();
std::cerr.flush();
}
else {
- out->flush();
+ debug_emit_trace_leader(std::cerr, file, line, varlist);
+ debug_emit(std::cerr, args...);
+ std::cerr.flush();
}
}
--
GitLab