summaryrefslogtreecommitdiff
path: root/src/thread/pthread_mutexattr_setrobust.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-03-17 20:41:37 -0400
committerRich Felker <dalias@aerifal.cx>2011-03-17 20:41:37 -0400
commit047e434ef5fd5437a74f98f63c40a77a683f7f3f (patch)
tree30102ca55dc34c2b5ec078e3b3ab7891abcccb5f /src/thread/pthread_mutexattr_setrobust.c
parent18c7ea8055cf733f168d2c74d7cc8523a360f5f1 (diff)
downloadmusl-047e434ef5fd5437a74f98f63c40a77a683f7f3f.tar.gz
implement robust mutexes
some of this code should be cleaned up, e.g. using macros for some of the bit flags, masks, etc. nonetheless, the code is believed to be working and correct at this point.
Diffstat (limited to 'src/thread/pthread_mutexattr_setrobust.c')
-rw-r--r--src/thread/pthread_mutexattr_setrobust.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/thread/pthread_mutexattr_setrobust.c b/src/thread/pthread_mutexattr_setrobust.c
new file mode 100644
index 00000000..4a296ba1
--- /dev/null
+++ b/src/thread/pthread_mutexattr_setrobust.c
@@ -0,0 +1,9 @@
+#include "pthread_impl.h"
+
+int pthread_mutexattr_setrobust(pthread_mutexattr_t *a, int robust)
+{
+ if (robust > 1U) return EINVAL;
+ *a &= ~4;
+ *a |= robust*4;
+ return 0;
+}