[PATCH] Disable buffering for raw_null_ostream()

Mehdi Amini mehdi.amini at apple.com
Wed Jul 1 12:12:39 PDT 2015


> 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.

— 
Mehdi



> 
> Otherwise, LGTM.
> 
>>  ~raw_null_ostream() override;
>> };
> 





More information about the llvm-commits mailing list