From 3ab1107767d5b2253af9a7823393eef663184ce8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20Dom=C3=ADnguez?= <adomu@posteo.net>
Date: Thu, 21 Jun 2018 13:47:55 +0200
Subject: [PATCH] Force flush at the end of line

---
 xmrstak/config.tpl       |  8 --------
 xmrstak/jconf.cpp        | 13 +------------
 xmrstak/misc/console.cpp | 15 +++------------
 xmrstak/misc/console.hpp |  2 --
 4 files changed, 4 insertions(+), 34 deletions(-)

diff --git a/xmrstak/config.tpl b/xmrstak/config.tpl
index 34f7656..14330a8 100644
--- a/xmrstak/config.tpl
+++ b/xmrstak/config.tpl
@@ -113,14 +113,6 @@ R"===(
  */
 "daemon_mode" : false,
 
-/*
- * Buffered output control.
- * When running the miner through a pipe, standard output is buffered. This means that the pipe won't read
- * each output line immediately. This can cause delays when running in background.
- * Set this option to true to flush stdout after each line, so it can be read immediately.
- */
-"flush_stdout" : false,
-
 /*
  * Output file
  *
diff --git a/xmrstak/jconf.cpp b/xmrstak/jconf.cpp
index c35fb51..33750c3 100644
--- a/xmrstak/jconf.cpp
+++ b/xmrstak/jconf.cpp
@@ -52,7 +52,7 @@ using namespace rapidjson;
  */
 enum configEnum {
 	aPoolList, sCurrency, bTlsSecureAlgo, iCallTimeout, iNetRetry, iGiveUpLimit, iVerboseLevel, bPrintMotd, iAutohashTime,
-	bFlushStdout, bDaemonMode, sOutputFile, iHttpdPort, sHttpLogin, sHttpPass, bPreferIpv4, bAesOverride, sUseSlowMem
+	bDaemonMode, sOutputFile, iHttpdPort, sHttpLogin, sHttpPass, bPreferIpv4, bAesOverride, sUseSlowMem
 };
 
 struct configVal {
@@ -73,7 +73,6 @@ configVal oConfigValues[] = {
 	{ iVerboseLevel, "verbose_level", kNumberType },
 	{ bPrintMotd, "print_motd", kTrueType },
 	{ iAutohashTime, "h_print_time", kNumberType },
-	{ bFlushStdout, "flush_stdout", kTrueType},
 	{ bDaemonMode, "daemon_mode", kTrueType },
 	{ sOutputFile, "output_file", kStringType },
 	{ iHttpdPort, "httpd_port", kNumberType },
@@ -607,16 +606,6 @@ bool jconf::parse_config(const char* sFilename, const char* sFilenamePools)
 	}
 #endif // _WIN32
 
-	if (prv->configValues[bFlushStdout]->IsBool())
-	{
-		bool bflush = prv->configValues[bFlushStdout]->GetBool();
-		printer::inst()->set_flush_stdout(bflush);
-		if (bflush)
-		{
-			printer::inst()->print_msg(L0, "Flush stdout forced.");
-		}
-	}
-
 	std::string ctmp = GetMiningCoin();
 	std::transform(ctmp.begin(), ctmp.end(), ctmp.begin(), ::tolower);
 
diff --git a/xmrstak/misc/console.cpp b/xmrstak/misc/console.cpp
index 7b14b4f..4eaa08b 100644
--- a/xmrstak/misc/console.cpp
+++ b/xmrstak/misc/console.cpp
@@ -156,7 +156,6 @@ printer::printer()
 {
 	verbose_level = LINF;
 	logfile = nullptr;
-	b_flush_stdout = false;
 }
 
 bool printer::open_logfile(const char* file)
@@ -193,11 +192,7 @@ void printer::print_msg(verbosity verbose, const char* fmt, ...)
 
 	std::unique_lock<std::mutex> lck(print_mutex);
 	fputs(buf, stdout);
-
-	if (b_flush_stdout)
-	{
-		fflush(stdout);
-	}
+	fflush(stdout);
 
 	if(logfile != nullptr)
 	{
@@ -210,11 +205,7 @@ void printer::print_str(const char* str)
 {
 	std::unique_lock<std::mutex> lck(print_mutex);
 	fputs(str, stdout);
-
-	if (b_flush_stdout)
-	{
-		fflush(stdout);
-	}
+	fflush(stdout);
 
 	if(logfile != nullptr)
 	{
@@ -223,7 +214,7 @@ void printer::print_str(const char* str)
 	}
 }
 
-//Do a press any key for the windows folk. *insert any key joke here*
+// Do a press any key for the windows folk. *insert any key joke here*
 #ifdef _WIN32
 void win_exit(int code)
 {
diff --git a/xmrstak/misc/console.hpp b/xmrstak/misc/console.hpp
index 6717631..5d78772 100644
--- a/xmrstak/misc/console.hpp
+++ b/xmrstak/misc/console.hpp
@@ -35,7 +35,6 @@ public:
 	};
 
 	inline void set_verbose_level(size_t level) { verbose_level = (verbosity)level; }
-	inline void set_flush_stdout(bool status) { b_flush_stdout = status; }
 	void print_msg(verbosity verbose, const char* fmt, ...);
 	void print_str(const char* str);
 	bool open_logfile(const char* file);
@@ -45,7 +44,6 @@ private:
 
 	std::mutex print_mutex;
 	verbosity verbose_level;
-	bool b_flush_stdout;
 	FILE* logfile;
 };
 
-- 
GitLab