diff options
author | unknown <gni/root@dev3-127.(none)> | 2006-10-08 11:38:20 +0800 |
---|---|---|
committer | unknown <gni/root@dev3-127.(none)> | 2006-10-08 11:38:20 +0800 |
commit | e70e103fef8a09f49baa882936de5668f2959cd7 (patch) | |
tree | e80949688aca48c2f1be73a333ab0e5df2b6e301 /ndb | |
parent | 42070e192e1e6fd150d184a04afb0b75330435f9 (diff) | |
parent | 705060f10ccb6a0e3ce5899f7d8c2fdfc2a6a777 (diff) | |
download | mariadb-git-e70e103fef8a09f49baa882936de5668f2959cd7.tar.gz |
Merge dev3-127.(none):/mnt/mysql/home/ngb/mysql-4.1/mysql-4.1-ndb-bj
into dev3-127.(none):/mnt/mysql/home/ngb/mysql-4.1/mysql-4.1-bug21858
Diffstat (limited to 'ndb')
-rw-r--r-- | ndb/src/common/util/File.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/ndb/src/common/util/File.cpp b/ndb/src/common/util/File.cpp index 12626f29e7d..00741d3a576 100644 --- a/ndb/src/common/util/File.cpp +++ b/ndb/src/common/util/File.cpp @@ -123,13 +123,25 @@ bool File_class::close() { bool rc = true; + int retval = 0; + if (m_file != NULL) { ::fflush(m_file); - rc = (::fclose(m_file) == 0 ? true : false); - m_file = NULL; // Try again? + retval = ::fclose(m_file); + while ( (retval != 0) && (errno == EINTR) ){ + retval = ::fclose(m_file); + } + if( retval == 0){ + rc = true; + } + else { + rc = false; + ndbout_c("ERROR: Close file error in File.cpp for %s",strerror(errno)); + } } - + m_file = NULL; + return rc; } |