[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


pthread_setspecific

Sets the thread-specific data value associated with the specified key for the current thread.

Syntax

pthread_setspecific(
                    key,
                    value );
 


Argument Data Type Access

key opaque pthread_key_t read value void * read


C Binding

#include 

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

Arguments

key
Thread-specific key that identifies the thread-specific data to receive value. This key value must be obtained from pthread_key_create.
value
New thread-specific data value to associate with the specified key for the current thread.

Description

This routine sets the thread-specific data value associated with the specified key for the current thread. If a value is defined for the key in this thread (the current value is not NULL), the new value is substituted for it. The key is obtained by a previous call to pthread_key_create.

Different threads can bind different values to the same key. These values are typically pointers to blocks of dynamically allocated memory that are reserved for use by the calling thread.

Do not call this routine from a thread-specific data destructor function.

Note that although the type for value (void *) implies an address, the type is being used as a "universal scalar type". DECthreads does nothing with value other than store it for later retrieval.

Return Values

If an error condition occurs, this routine returns an integer indicating the type of error. Possible return values are as follows:
Return        Description

0 Successful completion. [EINVAL] The specified key is invalid. [ENOMEM] Insufficient memory exists to associate the value with the key.


Associated Routines

   pthread_getspecific
   pthread_key_create
   pthread_key_delete



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]