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".
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
+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
#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 }