This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Avoid excessive flushing on lower-layer handle


In article <wvlg01majut.fsf@prospero.cambridge.redhat.com>,
Jason Merrill <jason@redhat.com> writes:

[...]
>> + 	else
>> + 	  _M_file.sync();

> Shouldn't this be unconditional?  i.e. drop the "else"?

If we change the behavior of _M_really_overflow and callers of
_M_really_overflow, then it should be unconditional.

[...]
>> ! 	  else if (!_M_file.sync())
[...]

> Why do we need an fflush here at all?

Because callers of _M_really_overflow(eof) expect to learn of flush
failures immediately.

>> If the user must now flush to switch modes, this should always be a safe
>> optimization.

> My patch didn't change that; that will be a later, trunk-only patch.  But I
> think your change is still safe.

Based on your questions, you seem to desire the more extensive patch
to change callers of _M_really_overflow().

I will post it for comment.

Regards,
Loren


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]