stdio line-streaming revisited

Sean Kelly sean at f4.ca
Thu Mar 29 10:19:13 PDT 2007


Andrei Alexandrescu (See Website For Email) wrote:
> Sean Kelly wrote:
>> Andrei Alexandrescu (See Website For Email) wrote:
>>> Bill Baxter wrote:
>>>>
>>>> I believe the current discussion is only about under-the-hood 
>>>> implementation issues.  So I don't think you have to worry about any 
>>>> D libraries exposing (good or bad) C/C++ design decisions to users.  
>>>> Tango is going to expose the same D interface no matter how it's 
>>>> implemented under the hood.
>>>
>>> That's great, however the interface has a problem too: it does not 
>>> produce atomic strings in multithreaded programs.
>>
>> Which interface?  And are you talking about input or output?
> 
> Cout. The thing is that the design using the syntax Cout(a)(b) is 
> conducive to two separate calls to the library. I recall this has been 
> briefly discussed here.

Just making sure we were on the same page.  In my experience, raw output 
is typically used for logging--that's about the only case I can think of 
where the random interleaving of messages is acceptable.  Tango has a 
separate logging facility which performs synchronization for exactly 
this purpose: tango.util.log.  Perhaps this particular critique would be 
more appropriately applied to the logging package?


Sean



More information about the Digitalmars-d mailing list