PR65411 don't retry fclose on EINTR

PR libstdc++/65411
	* config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
	retry fclose on EINTR.

From-SVN: r244451
This commit is contained in:
Jonathan Wakely 2017-01-13 17:52:34 +00:00 committed by Jonathan Wakely
parent e3017e522a
commit 0fdba3a81c
2 changed files with 5 additions and 10 deletions

View File

@ -1,5 +1,9 @@
2017-01-13 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/65411
* config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
retry fclose on EINTR.
* include/profile/base.h: Remove unused header that leads to header
cycle in C++17 mode.

View File

@ -267,16 +267,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
int __err = 0;
if (_M_cfile_created)
{
// In general, no need to zero errno in advance if checking
// for error first. However, C89/C99 (at variance with IEEE
// 1003.1, f.i.) do not mandate that fclose must set errno
// upon error.
errno = 0;
do
__err = fclose(_M_cfile);
while (__err && errno == EINTR);
}
__err = fclose(_M_cfile);
_M_cfile = 0;
if (!__err)
__ret = this;