blob: 78339c20b58a5fbfc796cb934c8578e32136d307 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <unistd.h>
#include <errno.h>
#include <pthread.h>
#include "thread_internal.h"
extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
int pthread_setspecific(pthread_key_t key, const void *value)
{
int id;
__THREAD_INIT();
id=__find_thread_id(getpid());
if ((key<PTHREAD_KEYS_MAX) && (__thread_keys[key].used)) {
__thread_keys[key].tkd[id]=value;
return 0;
}
(*__errno_location())=EINVAL;
return -1;
}
|