This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: gthr-dce.h update for trunk
- To: gcc-patches at gcc dot gnu dot org
- Subject: PATCH: gthr-dce.h update for trunk
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Mon, 18 Jun 2001 14:54:43 -0400 (EDT)
This patch is for the trunk. It updates gthr-dce.h to be functionally
equivalent to the version provided in the 3.0 release. It defines
__GTHREAD_MUTEX_INIT_FUNCTION and __GTHREAD_MUTEX_INIT_DEFAULT. These
are needed for threads with v3.
Checked with a complete bootstrap and check under hppa1.1-hp-hpux10.20:
<http://gcc.gnu.org/ml/gcc-testresults/2001-06/msg00423.html>.
OK?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2001-06-14 John David Anglin <dave@hiauly1.hia.nrc.ca>
* 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.
--- gthr-dce.h.orig Wed May 30 18:38:43 2001
+++ gthr-dce.h Thu Jun 14 14:08:01 2001
@@ -48,7 +48,10 @@
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 @@
#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 @@
#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 @@
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 @@
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)
{