Index: fusl/src/thread/pthread_setspecific.c |
diff --git a/fusl/src/thread/pthread_setspecific.c b/fusl/src/thread/pthread_setspecific.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..55e46a899378f4f896e570ad8edbacbe569cbcf8 |
--- /dev/null |
+++ b/fusl/src/thread/pthread_setspecific.c |
@@ -0,0 +1,12 @@ |
+#include "pthread_impl.h" |
+ |
+int pthread_setspecific(pthread_key_t k, const void *x) |
+{ |
+ struct pthread *self = __pthread_self(); |
+ /* Avoid unnecessary COW */ |
+ if (self->tsd[k] != x) { |
+ self->tsd[k] = (void *)x; |
+ self->tsd_used = 1; |
+ } |
+ return 0; |
+} |