[hurd,commited 2/2] htl: Use pthread_rwlock for libc_rwlock

Samuel Thibault <[email protected]>
Newsgroups gmane.os.hurd.cvs,gmane.comp.lib.glibc.alpha
Message-ID <[email protected]>
Like nptl does, so we really get rwlock behavior.
---
 sysdeps/htl/libc-lockP.h | 14 ++++++++++++++
 sysdeps/mach/libc-lock.h | 10 ----------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/sysdeps/htl/libc-lockP.h b/sysdeps/htl/libc-lockP.h
index a88eea4344..e20e40f254 100644
--- a/sysdeps/htl/libc-lockP.h
+++ b/sysdeps/htl/libc-lockP.h
@@ -21,6 +21,20 @@
 
 #include <pthread.h>
 
+typedef pthread_rwlock_t __libc_rwlock_t;
+
+#define __libc_rwlock_define(CLASS,NAME) \
+  CLASS __libc_rwlock_t NAME;
+#define __libc_rwlock_define_initialized(CLASS,NAME) \
+  CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
+#define __libc_rwlock_init(NAME) __pthread_rwlock_init (&(NAME), NULL)
+#define __libc_rwlock_fini(NAME) ((void) 0)
+#define __libc_rwlock_rdlock(NAME) __pthread_rwlock_rdlock (&(NAME))
+#define __libc_rwlock_wrlock(NAME) __pthread_rwlock_wrlock (&(NAME))
+#define __libc_rwlock_tryrdlock(NAME) __pthread_rwlock_tryrdlock (&(NAME))
+#define __libc_rwlock_trywrlock(NAME) __pthread_rwlock_trywrlock (&(NAME))
+#define __libc_rwlock_unlock(NAME) __pthread_rwlock_unlock (&(NAME))
+
 /* If we check for a weakly referenced symbol and then perform a
    normal jump to it te code generated for some platforms in case of
    PIC is unnecessarily slow.  What would happen is that the function
diff --git a/sysdeps/mach/libc-lock.h b/sysdeps/mach/libc-lock.h
index ddeae544f4..c5c67ccf9d 100644
--- a/sysdeps/mach/libc-lock.h
+++ b/sysdeps/mach/libc-lock.h
@@ -156,16 +156,6 @@ typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
 #define __mach_rwlock_trywrlock		__libc_lock_trylock
 #define __mach_rwlock_unlock		__libc_lock_unlock
 
-#define __libc_rwlock_define		__libc_lock_define
-#define __libc_rwlock_define_initialized __libc_lock_define_initialized
-#define __libc_rwlock_init		__libc_lock_init
-#define __libc_rwlock_fini		__libc_lock_fini
-#define __libc_rwlock_rdlock		__libc_lock_lock
-#define __libc_rwlock_wrlock		__libc_lock_lock
-#define __libc_rwlock_tryrdlock		__libc_lock_trylock
-#define __libc_rwlock_trywrlock		__libc_lock_trylock
-#define __libc_rwlock_unlock		__libc_lock_unlock
-
 struct __libc_cleanup_frame
 {
   void (*__fct) (void *);
-- 
2.51.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.