pthread_setspecific Subroutine


Sets the thread-specific data associated with a specified key.


Threads Library (libpthreads.a)



int pthread_setspecific (key, value)
pthread_key_t key;
const void *value;


The pthread_setspecific subroutine sets the thread-specific data associated
with the key key. It is a void pointer.

Typically, thread-specific data are pointers to dynamically allocated
storage. When freeing the storage, the value should be set to NULL.
It is not recommended to cast this pointer into scalar data type (int
for example), because the casts may not be portable, and because the
value of NULL is implementation-dependent.

Note:	The pthread.h header file must be the first included file of
each source file using the threads library.


key	Specifies the key to which the value is bound.

value	Specifies the new thread-specific value.

Return Values

Upon successful completion, 0 is returned. Otherwise, an error code
is returned.

Error Codes

The pthread_setspecific subroutine is unsuccessful if the following
is true:

EINVAL	The key parameter is not valid.

ENOMEM	There is not sufficient memory to associate the value with
the key.

Implementation Specifics

This subroutine is part of the Base Operating System (BOS) Runtime.

Related Information

The pthread_key_create subroutine, pthread_getspecific subroutine.

Thread-Specific Data.

Threads Library Quick Reference.