summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c
blob: c2f84c814dc96d0a2f031d489b3304baae5c5f45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <unistd.h>
#include <errno.h>

#include <pthread.h>
#include "thread_internal.h"

extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
const void *pthread_getspecific(pthread_key_t key)
{
  int id;
  __THREAD_INIT();

  id=__find_thread_id(getpid());

  if ((key<PTHREAD_KEYS_MAX) && (__thread_keys[key].used)) {
    return __thread_keys[key].tkd[id];
  }
  return 0;
}