summaryrefslogtreecommitdiff
path: root/lib/pthread-mutex.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2019-11-21 11:44:01 +0100
committerBruno Haible <bruno@clisp.org>2019-11-21 11:44:01 +0100
commit6dbeba577f4d54255895956b510f937ec9cd4228 (patch)
tree7fad2a078492e87933e0b2a99c9708848a2d8918 /lib/pthread-mutex.c
parenta948afdbc503f885d368725e340afd78718e77f8 (diff)
downloadgnulib-6dbeba577f4d54255895956b510f937ec9cd4228.tar.gz
pthread-mutex: Fix errors in C++ mode.
* m4/pthread-mutex.m4 (gl_PTHREAD_MUTEX): Test whether pthread_mutexattr_getrobust exists. If not, define PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED. * lib/pthread-mutex.c (pthread_mutexattr_getrobust, pthread_mutexattr_setrobust): Define also if <pthread.h> exists but PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED. * modules/pthread-mutex (configure.ac): Compile pthread-mutex.c also when <pthread.h> exists but pthread_mutexattr_getrobust needs a gnulib definition.
Diffstat (limited to 'lib/pthread-mutex.c')
-rw-r--r--lib/pthread-mutex.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/pthread-mutex.c b/lib/pthread-mutex.c
index 7a6fc1a722..96a225daee 100644
--- a/lib/pthread-mutex.c
+++ b/lib/pthread-mutex.c
@@ -82,6 +82,25 @@ pthread_mutexattr_destroy (pthread_mutexattr_t *attr _GL_UNUSED)
return 0;
}
+#elif PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED
+
+int
+pthread_mutexattr_getrobust (const pthread_mutexattr_t *attr, int *robustp)
+{
+ *robustp = PTHREAD_MUTEX_STALLED;
+ return 0;
+}
+
+int
+pthread_mutexattr_setrobust (pthread_mutexattr_t *attr, int robust)
+{
+ if (!(robust == PTHREAD_MUTEX_STALLED || robust == PTHREAD_MUTEX_ROBUST))
+ return EINVAL;
+ if (!(robust == PTHREAD_MUTEX_STALLED))
+ return ENOTSUP;
+ return 0;
+}
+
#endif
#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS