From 0fdba3a81ca688d6b0072dc97fc2499ea6f89974 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 13 Jan 2017 17:52:34 +0000 Subject: [PATCH] PR65411 don't retry fclose on EINTR PR libstdc++/65411 * config/io/basic_file_stdio.cc (__basic_file::close()): Don't retry fclose on EINTR. From-SVN: r244451 --- libstdc++-v3/ChangeLog | 4 ++++ libstdc++-v3/config/io/basic_file_stdio.cc | 11 +---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 79dc7537537..7ebd063df2a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,9 @@ 2017-01-13 Jonathan Wakely + PR libstdc++/65411 + * config/io/basic_file_stdio.cc (__basic_file::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 a0ad82c75fb..e7367016504 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;