Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2016-07-08 12:03:55 +0300
committerBen Noordhuis <info@bnoordhuis.nl>2016-07-12 00:15:34 +0300
commitcfe76f2d6bd77d3c0a73335c9643bcd6e8dd24fc (patch)
tree06862c668fca20124f90fb54f45c2d751351609f /src/node_main.cc
parente8a7003e940928e2d1684c12881dd2a39af2d7cc (diff)
src: disable stdio buffering
Disable stdio buffering, it interacts poorly with printf() calls from elsewhere in the program (e.g., any logging from V8.) Unbreaks among other things the `--trace_debug_json` switch. Undoes commit 0966ab99 ("src: force line buffering for stderr"), which in retrospect is not a proper fix. Turning on line buffering fixed a flaky test on SmartOS but the test wasn't failing on other platforms, where stderr wasn't line-buffered either. Mark the test flaky again, it failed once in a run of 333 tries on the smartos-64 buildbot. Disabling buffering should be safe even when mixed with non-blocking stdio I/O because libuv goes to great lengths to reopen the tty file descriptors and falls back to blocking I/O when that fails. PR-URL: https://github.com/nodejs/node/pull/7610 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src/node_main.cc')
-rw-r--r--src/node_main.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/node_main.cc b/src/node_main.cc
index 02082ba0169..bde39756249 100644
--- a/src/node_main.cc
+++ b/src/node_main.cc
@@ -50,7 +50,10 @@ int wmain(int argc, wchar_t *wargv[]) {
#else
// UNIX
int main(int argc, char *argv[]) {
- setvbuf(stderr, NULL, _IOLBF, 1024);
+ // Disable stdio buffering, it interacts poorly with printf()
+ // calls elsewhere in the program (e.g., any logging from V8.)
+ setvbuf(stdout, nullptr, _IONBF, 0);
+ setvbuf(stderr, nullptr, _IONBF, 0);
return node::Start(argc, argv);
}
#endif