.TH "globus_thread_key" 3 "Version 18.14" "globus_common" \" -*- nroff -*- .ad l .nh .SH NAME globus_thread_key \- Thread-Specific Storage .PP \- Thread-Specific Storage\&. .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "int \fBglobus_thread_key_create\fP (\fBglobus_thread_key_t\fP *key, \fBglobus_thread_key_destructor_func_t\fP destructor)" .br .RI "Create a key for thread-specific storage\&. " .ti -1c .RI "int \fBglobus_thread_key_delete\fP (\fBglobus_thread_key_t\fP key)" .br .RI "Delete a thread-local storage key\&. " .ti -1c .RI "void * \fBglobus_thread_getspecific\fP (\fBglobus_thread_key_t\fP key)" .br .RI "Get a thread-specific data value\&. " .ti -1c .RI "int \fBglobus_thread_setspecific\fP (\fBglobus_thread_key_t\fP key, void *value)" .br .RI "Set a thread-specific data value\&. " .in -1c .SH "Detailed Description" .PP Thread-Specific Storage\&. The \fBglobus_thread_key_t\fP data type acts as a key to thread-specific storage\&. For each key created by \fBglobus_thread_key_create()\fP, each thread may store and retrieve its own value\&. .SH "Function Documentation" .PP .SS "void * globus_thread_getspecific (\fBglobus_thread_key_t\fP key)" .PP Get a thread-specific data value\&. The \fBglobus_thread_getspecific()\fP function returns the value associated with the thread-specific data key passed as its first parameter\&. This function returns NULL if the value has not been set by the current thread\&. The return value is undefined if the key is not valid\&. .PP \fBParameters\fP .RS 4 \fIkey\fP Thread-specific data key to look up\&. .RE .PP \fBReturns\fP .RS 4 The value passed to a previous call to \fBglobus_thread_setspecific()\fP in the current thread for this key\&. .RE .PP .SS "int globus_thread_key_create (\fBglobus_thread_key_t\fP * key, \fBglobus_thread_key_destructor_func_t\fP destructor)" .PP Create a key for thread-specific storage\&. The \fBglobus_thread_key_create()\fP function creates a new key for thread-specific data\&. The new key will be available for all threads to store a distinct value\&. If the function pointer \fIdestructor\fP is non-NULL, then that function will be invoked when a thread exits that has a non-NULL value associated with the key\&. .PP \fBParameters\fP .RS 4 \fIkey\fP Pointer to be set to the new key\&. .br \fIdestructor\fP Pointer to a function to call when a thread exits to free the key's value\&. .RE .PP \fBReturns\fP .RS 4 On success, globus_thread_create_key() will create a new key to thread-local storage and return GLOBUS_SUCCESS\&. If an error occurs, then the value of \fIkey\fP is undefined and globus_thread_create_key() returns an implementation-specific non-zero error value\&. .RE .PP .SS "int globus_thread_key_delete (\fBglobus_thread_key_t\fP key)" .PP Delete a thread-local storage key\&. The \fBglobus_thread_key_delete()\fP function deletes the key used for a thread-local storage association\&. The destructor function for this key will no longer be called after this function returns\&. The behavior of subsequent calls to \fBglobus_thread_getspecific()\fP or \fBglobus_thread_setspecific()\fP with this key will be undefined\&. .PP \fBParameters\fP .RS 4 \fIkey\fP Key to destroy\&. .RE .PP \fBReturns\fP .RS 4 On success, \fBglobus_thread_key_delete()\fP will delete a thread-local storage key and return GLOBUS_SUCCESS\&. If an error occurs, then the value of \fIkey\fP is undefined and globus_thread_create_key() returns an implementation-specific non-zero error value\&. .RE .PP .SS "int globus_thread_setspecific (\fBglobus_thread_key_t\fP key, void * value)" .PP Set a thread-specific data value\&. The \fBglobus_thread_setspecific()\fP function associates a thread-specific value with a data key\&. If the key had a previous value set in the current thread, it is replaced, but the destructor function is not called for the old value\&. .PP \fBParameters\fP .RS 4 \fIkey\fP Thread-specific data key to store\&. .br \fIvalue\fP A pointer to data to store as the thread-specific data for this thread\&. .RE .PP \fBReturns\fP .RS 4 On success, \fBglobus_thread_setspecific()\fP stores value in the thread-specific data for the specified key and returns GLOBUS_SUCCESS\&. If an error occurs, \fBglobus_thread_setspecific()\fP returns an implementation-specific non-zero error code and does not modify the key's value for this thread\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for globus_common from the source code\&.