Multithreaded Programming Guide

Set the Thread-Specific Data Key

pthread_setspecific(3T)

Use pthread_setspecific(3T) to set the thread-specific binding to the specified thread-specific data key.

Prototype:
int	pthread_setspecific(pthread_key_t key, const void *value);
#include <pthread.h>

pthread_key_t key;
void *value;
int ret;

/* key previously created */
ret = pthread_setspecific(key, value); 

Return Values

pthread_setspecific() returns zero after completing successfully. Any other returned value indicates that an error occurred. When any of the following conditions occur, pthread_setspecific() fails and returns the corresponding value.


ENOMEM

Not enough virtual memory is available.


EINVAL

key is invalid.


Note -

pthread_setspecific() does not free its storage. If a new binding is set, the existing binding must be freed; otherwise, a memory leak can occur..