id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 2998,Make file_sink flushable,Andrew Schweitzer ,Jonathan Turkanis,"file_sink is hard to use as a debug log, since it does not flush. For example, when used when pushed into a filtering_ostream with cout, if flush is not called, characters don't appear on console or in file in a timely fashion. If flush is called, the characters on the console appear but not those in the file, because file_sink does not implement Flushable concept, and doesn't flush. This code: filtering_ostream fo; file_sink fsink(""out.txt""); tee_filter tee_fsink(fsink); fo.push(tee_fsink); fo.push(cout); fo << ""some text""; fo.flush(); is very useful for arbitrary chains of debug logs, but not currently usable. The same issue applies to file, file_descriptor, and file_descriptor_sink. If there is some reason these classes should not be modified to made flushable, then it seems easy to make flushable_* versions. Example of this attached, which was copied from file.hpp. I also tried to add flushable_file_descriptor, by privately inheriting from file_descriptor, and adding a flush call which calls ::FlushFileBuffers on handle()... but so far that doesn't seem to work, so not attaching. Discussion at http://groups.google.com/group/boost-list/browse_thread/thread/4c07e7c255e8143a/b9003b1b83c5a4db?lnk=raot&pli=1 ",Feature Requests,closed,Boost 1.39.0,iostreams,Boost 1.38.0,Not Applicable,fixed,,