This repository was archived by the owner on Dec 8, 2021. It is now read-only.
bug: set "sticky" I/O format flags before forking threads #1128
+12 −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.
Any I/O manipulator that sets a per-stream I/O format flag
is not thread safe, as recent ThreadSanitizer warnings attest.
So, set
std::ios::boolalphain the benchmarks before we forkany threads, rather than during concurrent output operations.
This change is