#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <assert.h>
void* pth1(void *args)
{
pthread_key_t key, key2;
int value = 1;
void *getv;
getv = pthread_getspecific(key);
assert(getv == NULL);
pthread_key_create(&key, NULL);
getv = pthread_getspecific(key);
assert(getv == NULL);
pthread_setspecific(key, &value);
getv = pthread_getspecific(key);
assert(getv == &value);
getv = pthread_getspecific(key2);
assert(getv == NULL);
pthread_key_delete(key);
return NULL;
}
int
main()
{
pthread_t t1;
pthread_create(&t1, NULL, pth1, NULL);
pthread_join(t1, NULL);
return 0;
}