-/* Threads compatibily routines for libgcc2. */
+/* Threads compatibility routines for libgcc2. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of GNU CC.
__GTHREAD_MUTEX_INIT
to initialize __gthread_mutex_t to get a fast
non-recursive mutex.
+ __GTHREAD_MUTEX_INIT_FUNCTION
+ some systems can't initalize a mutex without a
+ function call. On such systems, define this to a
+ function which looks like this:
+ void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *)
+ Don't define __GTHREAD_MUTEX_INIT in this case
The threads interface must define the following static functions:
int __gthread_mutex_trylock (__gthread_mutex_t *mutex);
int __gthread_mutex_unlock (__gthread_mutex_t *mutex);
- All functions returning int should return 0 on success, -1 on error.
+ All functions returning int should return zero on success or the error
+ number. If the operation is not supported, -1 is returned.
Currently supported threads packages are
POSIX threads with -D_PTHREADS
#include "gthr-solaris.h"
/* Include GTHREAD_FILE if one is defined. */
-#elif SUPPORTS_WEAK && HAVE_GTHR_DEFAULT
+#elif defined(HAVE_GTHR_DEFAULT)
+#if SUPPORTS_WEAK
#ifndef GTHREAD_USE_WEAK
#define GTHREAD_USE_WEAK 1
#endif
+#endif
#include "gthr-default.h"
/* Fallback to single thread definitions. */