diff options
author | Alessandro Da Rugna <alessandro.darugna@gmail.com> | 2017-10-29 21:02:33 +0100 |
---|---|---|
committer | psychocrypt <psychocrypt@users.noreply.github.com> | 2017-10-29 21:05:57 +0100 |
commit | cb3fc22ac1a95eda0843aa641720b52063c3b74c (patch) | |
tree | 66b40a4d012166c1476e2840c35ec0e404f366c6 /xmrstak/misc | |
parent | a7fb89bec2b88cc694bf88aed729451bb9bdd8a0 (diff) | |
download | xmr-stak-cb3fc22ac1a95eda0843aa641720b52063c3b74c.zip xmr-stak-cb3fc22ac1a95eda0843aa641720b52063c3b74c.tar.gz |
add option: flush stdout
Added the option to forcefully flush STDOUT, which may be useful when running the miner through a pipe instead than a shell.
If STDOUT is a shell, it's unbuffered by default.
If STDOUT is a pipe, it's buffered by default.
Diffstat (limited to 'xmrstak/misc')
-rw-r--r-- | xmrstak/misc/console.cpp | 6 | ||||
-rw-r--r-- | xmrstak/misc/console.hpp | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/xmrstak/misc/console.cpp b/xmrstak/misc/console.cpp index ba34bb3..ce63bcb 100644 --- a/xmrstak/misc/console.cpp +++ b/xmrstak/misc/console.cpp @@ -156,6 +156,7 @@ printer::printer() { verbose_level = LINF; logfile = nullptr; + b_flush_stdout = false; } bool printer::open_logfile(const char* file) @@ -193,6 +194,11 @@ 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); + } + if(logfile != nullptr) { fputs(buf, logfile); diff --git a/xmrstak/misc/console.hpp b/xmrstak/misc/console.hpp index 4d5be78..97e86bd 100644 --- a/xmrstak/misc/console.hpp +++ b/xmrstak/misc/console.hpp @@ -35,6 +35,7 @@ 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); @@ -44,6 +45,7 @@ private: std::mutex print_mutex; verbosity verbose_level; + bool b_flush_stdout; FILE* logfile; }; |