Restore use of writev() system call
#609
Merged
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.
The use of the sequential
write()system calls to replacewritev()in commit 29d17be might be simpler to understand, but can lead to unwanted CPU overhead when a high frequency of newlines exists in the data. The original bugfix for the log file corruption was the proper reset of theiovcnton error. We restore the reset but always do it as part of thewritev_buffer_flush()method which avoids "leaking" knowledge of how it works.See #262 for the effects that behavioral analysis.