diff options
author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-03 22:13:22 +0000 |
---|---|---|
committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-03 22:13:22 +0000 |
commit | f76548a9d8172e9f90eb159e89e4762d56589d36 (patch) | |
tree | 65da7a56e6ee8f546a8176fc1928dbd11ecc6ec1 /gcc/gthr-dce.h | |
parent | 8bbed9cf9c0963449e145836d51f904bca762130 (diff) | |
download | gcc-f76548a9d8172e9f90eb159e89e4762d56589d36.tar.gz |
* gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
__GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
(__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
(__gthread_mutex_init_function): New function for mutex initialization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44614 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gthr-dce.h')
-rw-r--r-- | gcc/gthr-dce.h | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/gcc/gthr-dce.h b/gcc/gthr-dce.h index 96660a334ef..916aefd12c3 100644 --- a/gcc/gthr-dce.h +++ b/gcc/gthr-dce.h @@ -48,7 +48,10 @@ typedef pthread_once_t __gthread_once_t; typedef pthread_mutex_t __gthread_mutex_t; #define __GTHREAD_ONCE_INIT pthread_once_init -/* Howto define __GTHREAD_MUTEX_INIT? */ + +#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function + +#define __GTHREAD_MUTEX_INIT_DEFAULT pthread_once_init #if SUPPORTS_WEAK && GTHREAD_USE_WEAK @@ -59,7 +62,7 @@ typedef pthread_mutex_t __gthread_mutex_t; #pragma weak pthread_getspecific #pragma weak pthread_setspecific #pragma weak pthread_create - +#pragma weak pthread_mutex_init #pragma weak pthread_mutex_lock #pragma weak pthread_mutex_trylock #pragma weak pthread_mutex_unlock @@ -73,7 +76,6 @@ typedef pthread_mutex_t __gthread_mutex_t; #pragma weak pthread_cond_wait #pragma weak pthread_exit #pragma weak pthread_getunique_np -#pragma weak pthread_mutex_init #pragma weak pthread_mutex_destroy #pragma weak pthread_self #pragma weak pthread_yield @@ -424,20 +426,12 @@ __gthread_key_dtor (UNUSED (__gthread_key_t key), UNUSED (void *ptr)) return 0; } -#if defined (__PTHREAD_LIBRARY_VERSION_1) && __PTHREAD_LIBRARY_VERSION_1 >= 1 -static inline int -__gthread_key_delete (__gthread_key_t key) -{ - return pthread_key_delete (key); -} -#else static inline int __gthread_key_delete (UNUSED (__gthread_key_t key)) { /* Operation is not supported. */ return -1; } -#endif static inline void * __gthread_getspecific (__gthread_key_t key) @@ -455,6 +449,13 @@ __gthread_setspecific (__gthread_key_t key, const void *ptr) return pthread_setspecific (key, (void *) ptr); } +static inline void +__gthread_mutex_init_function (__gthread_mutex_t *mutex) +{ + if (__gthread_active_p ()) + pthread_mutex_init (mutex, pthread_mutexattr_default); +} + static inline int __gthread_mutex_lock (__gthread_mutex_t *mutex) { |