aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog4
-rw-r--r--libstdc++-v3/config/io/basic_file_stdio.cc11
2 files changed, 5 insertions, 10 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 79dc753..7ebd063 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc
index a0ad82c..e736701 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.cc
+++ b/libstdc++-v3/config/io/basic_file_stdio.cc
@@ -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;