aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2011-11-07 15:07:31 +0100
committerAndreas Schwab <schwab@redhat.com>2011-11-07 15:20:59 +0100
commit7583a88d1c7170caad26966bcea8bfc2c92093ba (patch)
treed21600c563ef8cdcad2d71dc0acfed02b7c498a6
parentae1bc2fa1c58b13ffa83483c24e547148762e24f (diff)
downloadglibc-7583a88d1c7170caad26966bcea8bfc2c92093ba.zip
glibc-7583a88d1c7170caad26966bcea8bfc2c92093ba.tar.gz
glibc-7583a88d1c7170caad26966bcea8bfc2c92093ba.tar.bz2
Fix locking in _IO_flush_all_lockp
-rw-r--r--ChangeLog3
-rw-r--r--libio/genops.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b09f5ef..3a71044 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2011-11-07 Andreas Schwab <schwab@redhat.com>
+ * libio/genops.c (_IO_flush_all_lockp): Only register cleanup
+ handler when locking.
+
* nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn):
Fix size of allocated buffer.
diff --git a/libio/genops.c b/libio/genops.c
index 5d21c42..bb40c34 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -826,7 +826,7 @@ _IO_flush_all_lockp (int do_lock)
int last_stamp;
#ifdef _IO_MTSAFE_IO
- _IO_cleanup_region_start_noarg (flush_cleanup);
+ __libc_cleanup_region_start (do_lock, flush_cleanup, 0);
if (do_lock)
_IO_lock_lock (list_all_lock);
#endif
@@ -866,7 +866,7 @@ _IO_flush_all_lockp (int do_lock)
#ifdef _IO_MTSAFE_IO
if (do_lock)
_IO_lock_unlock (list_all_lock);
- _IO_cleanup_region_end (0);
+ __libc_cleanup_region_end (0);
#endif
return result;