Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 20 Dec 2002 09:33:33 +0000 (09:33 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 20 Dec 2002 09:33:33 +0000 (09:33 +0000)
* include/libio.h [_IO_MTSAFE_IO && _IO_lock_inexpensive]:
Redefine _IO_flockifle and _IO_funlockfile as inlines.

ChangeLog
include/libio.h
nptl/ChangeLog
nptl/sysdeps/pthread/bits/stdio-lock.h

index 6cbb349..227655b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2002-12-20  Ulrich Drepper  <drepper@redhat.com>
 
+       * include/libio.h [_IO_MTSAFE_IO && _IO_lock_inexpensive]:
+       Redefine _IO_flockifle and _IO_funlockfile as inlines.
+
        * sysdeps/generic/dl-sysdep.c (_dl_important_hwcaps): For TLS
        builds add "tls" in the search path.
        * elf/ldconfig.c (is_hwcap_platform): Also recognize "tls".
index ee727e2..633ee51 100644 (file)
@@ -10,4 +10,15 @@ libc_hidden_proto (__woverflow)
 libc_hidden_proto (__wunderflow)
 libc_hidden_proto (__wuflow)
 
+#if defined _IO_MTSAFE_IO && _IO_lock_inexpensive
+# undef _IO_flockfile
+# define _IO_flockfile(_fp) \
+  if (((_fp)->_flags & _IO_USER_LOCK) == 0)                                  \
+     _IO_lock_lock (*(_fp)->_lock)
+# undef _IO_funlockfile
+# define _IO_funlockfile(_fp) \
+  if (((_fp)->_flags & _IO_USER_LOCK) == 0)                                  \
+    _IO_lock_unlock (*(_fp)->_lock)
+#endif
+
 #endif
index ed7de44..1cb4c37 100644 (file)
@@ -1,3 +1,7 @@
+2002-12-20  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
+
 2002-12-19  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
index ea622e4..fbb14a1 100644 (file)
@@ -24,6 +24,9 @@
 #include <lowlevellock.h>
 
 
+/* The locking here is very inexpensive, even for inlining.  */
+#define _IO_lock_inexpensive   1
+
 typedef struct { int lock; int cnt; void *owner; } _IO_lock_t;
 
 #define _IO_lock_initializer { LLL_MUTEX_LOCK_INITIALIZER, 0, NULL }