/* PTHREAD_MUTEX_TIMED_NP */
/* PTHREAD_MUTEX_NORMAL */
case PTHREAD_MUTEX_DEFAULT:
-# if !defined(VGP_ppc32_aix5) && !defined(VGP_ppc64_aix5)
+#if defined(HAVE_PTHREAD_MUTEX_ADAPTIVE_NP)
case PTHREAD_MUTEX_ADAPTIVE_NP:
-# endif
+#endif
return mutex_type_default_mutex;
}
return mutex_type_invalid_mutex;
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
+#include "../../config.h"
static void lock_twice(pthread_mutex_t* const p)
{
/* Let the program abort after 3 seconds instead of leaving it deadlocked. */
alarm(3);
-#if !defined(_AIX)
+
+#if defined(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
{
pthread_mutex_t m = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
printf("Recursive mutex (statically initialized).\n");
lock_twice(&m);
pthread_mutex_destroy(&m);
- }
+ }
+#endif
+#if defined(HAVE_PTHREAD_MUTEX_RECURSIVE_NP)
{
pthread_mutex_t m;
pthread_mutexattr_t attr;
pthread_mutexattr_destroy(&attr);
lock_twice(&m);
pthread_mutex_destroy(&m);
- }
+ }
+#endif
+#if defined(HAVE_PTHREAD_MUTEX_ERRORCHECK_NP)
{
pthread_mutex_t m;
pthread_mutexattr_t attr;
pthread_mutex_init(&m, &attr);
pthread_mutexattr_destroy(&attr);
lock_twice(&m);
- pthread_mutex_destroy(&m); }
-#endif /* !defined(_AIX) */
+ pthread_mutex_destroy(&m);
+ }
+#endif
{
pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
printf("Non-recursive mutex.\n");
fflush(stdout);
lock_twice(&m);
- }
+ }
printf("Done.\n");
return 0;
}