summaryrefslogtreecommitdiff
path: root/src/thread/pthread_setspecific.c
blob: 55e46a899378f4f896e570ad8edbacbe569cbcf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
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;
}