- NetBSD Manual Pages
PTHREAD_GETSPECIFIC(3) NetBSD Library Functions Manual PTHREAD_GETSPECIFIC(3)
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
pthread_getspecific, pthread_setspecific -- thread-specific data value
POSIX Threads Library (libpthread, -lpthread)
pthread_setspecific(pthread_key_t key, const void *value);
The pthread_getspecific() function returns the value currently bound to
the specified key on behalf of the calling thread. Conversely, the
pthread_setspecific() function associates a thread-specific value with a
key obtained via a previous call to pthread_key_create(3). Different
threads have different values bound to each key. These values are typi-
cally pointers to blocks of dynamically allocated memory that have been
reserved for use by the calling thread.
Undefined behavior may follow if either function is called with a key
value not obtained from pthread_key_create(3), or if the call is made
after key has been deleted with pthread_key_delete(3). It is possible to
call either function from a thread-specific data destructor function.
Note however that this is not well defined for the pthread_setspecific()
function; lost storage or infinite loops may occur.
The pthread_getspecific() function will return the thread-specific data
value associated with the given key. If no thread-specific data value is
associated with key, then the value NULL is returned. If successful, the
pthread_setspecific() function will return zero. Otherwise an error num-
ber will be returned to indicate the error.
No errors are defined for either function.
These functions conform to IEEE Std 1003.1-2001 (``POSIX.1'').
NetBSD 9.2 July 9, 2010 NetBSD 9.2