set stdout/stderr to be unbuffered when they are not connected to a file #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes somewhat jumbled output due to mixed usage of stdout and
stderr without proper calls to fflush() and letting stdio choose the
default buffering strategy.
On win32, pipes are often used instead pty (since there's no pty on win32),
therefore this issue has higher possibility to appear. For example,
running scanner in psuedo terminal application such as mintty is
enough to reproduce the issue.
unbuffered mode is a simple way to ensure output order to be
always preserved, at the expence of tiny I/O overhead that should be
negligible.