[PATCH] Disable buffering for raw_null_ostream()
Duncan P. N. Exon Smith
dexonsmith at apple.com
Wed Jul 1 12:25:10 PDT 2015
> On 2015-Jul-01, at 12:12, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
>>
>> On Jul 1, 2015, at 12:05 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>>
>>
>>> On 2015-Jun-30, at 22:40, Mehdi AMINI <mehdi.amini at apple.com> wrote:
>>>
>>> Hi rafael,
>>>
>>> There is no need to buffer the nulls() output.
>>> Moreover it kept a shared buffer, and made using nulls() not possible
>>> in a multi-threaded environment.
>>>
>>> http://reviews.llvm.org/D10861
>>>
>>> Files:
>>> include/llvm/Support/raw_ostream.h
>>>
>>> Index: include/llvm/Support/raw_ostream.h
>>> ===================================================================
>>> --- include/llvm/Support/raw_ostream.h
>>> +++ include/llvm/Support/raw_ostream.h
>>> @@ -530,7 +530,7 @@
>>> uint64_t current_pos() const override;
>>>
>>> public:
>>> - explicit raw_null_ostream() {}
>>> + explicit raw_null_ostream() : raw_pwrite_stream(true) {}
>>
>> Can you document the `true` here?
>>
>> : raw_pwrite_stream(/* Unbuffered */ true) {}
>
> What about changing the bool to an enum class instead?
> I don’t really like boolean argument for this reason.
Might be overkill; we use `bool`s as args all over. `bool`s are
awkward as arguments, but IMO documenting them is usually sufficient.
As long as it doesn't conflict strangely with `BufferKind` I don't
see a problem with it though (as long as it's a separate commit from
the functional change).
More information about the llvm-commits
mailing list