pthread_setspecific()

Updated: April 19, 2023

Set a thread-specific data value

Synopsis:

#include <pthread.h>

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

Arguments:

key
The key associated with the data that you want to set. See pthread_key_create().
value
The value that you want to store.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_setspecific() function binds the thread specific data value value with the thread specific data key key.

You can call this function from within a thread-specific data destructor function.

Note: You must call this function with a key that you got from pthread_key_create(). You can't use a key after destroying it with pthread_key_delete().

Returns:

EOK
Success.
ENOMEM
Insufficient memory to store thread specific data value value.
EINVAL
Invalid thread specific data key key.

Examples:

See pthread_key_create().

Classification:

POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes

Caveats:

Calling pthread_setspecific() with a non-NULL value may result in lost storage or infinite loops unless value was returned by pthread_key_create().