A flush on a basic_osyncstream does not flush immediately:
{
osyncstream bout(cout);
bout <<"Hello,"<<'\n'; // no flush
bout.emit(); // characters transferred; cout not flushed
bout <<"World!"<< endl; // flush noted; cout not flushed
bout.emit(); // characters transferred; cout flushed
bout <<"Greetings."<<'\n'; // no flush}// characters transferred; cout not flushed