summary refs log tree commit diff
path: root/libio/genops.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-02-09 20:08:44 +0000
committerUlrich Drepper <drepper@redhat.com>2004-02-09 20:08:44 +0000
commit64f01020838a382d833254297f650d4a55933bde (patch)
tree18f09dc33a4507e6636e05c902893a8db104776c /libio/genops.c
parent8ce776d3ca10b2eb2ac4bbf316281e8adb48b566 (diff)
downloadglibc-64f01020838a382d833254297f650d4a55933bde.tar.gz
glibc-64f01020838a382d833254297f650d4a55933bde.tar.xz
glibc-64f01020838a382d833254297f650d4a55933bde.zip
(_IO_cleanup): Do not use locking when flushing the buffers. Some thread might be using a stream.
Diffstat (limited to 'libio/genops.c')
-rw-r--r--libio/genops.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libio/genops.c b/libio/genops.c
index 58dac005d8..5b65e76bea 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -942,7 +942,9 @@ _IO_unbuffer_write ()
 int
 _IO_cleanup ()
 {
-  int result = INTUSE(_IO_flush_all) ();
+  /* We do *not* want locking.  Some threads might use streams but
+     that is there problem, we flush them underneath them.  */
+  int result = _IO_flush_all_lockp (0);
 
   /* We currently don't have a reliable mechanism for making sure that
      C++ static destructors are executed in the correct order.