diff options
author | Bruno Haible <bruno@clisp.org> | 2019-11-21 11:44:01 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2019-11-21 11:44:01 +0100 |
commit | 6dbeba577f4d54255895956b510f937ec9cd4228 (patch) | |
tree | 7fad2a078492e87933e0b2a99c9708848a2d8918 /lib/pthread-mutex.c | |
parent | a948afdbc503f885d368725e340afd78718e77f8 (diff) | |
download | gnulib-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.c | 19 |
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 |