Defined in header <threads.h> | ||
---|---|---|
int tss_set( tss_t tss_id, void *val ); | (since C11) |
Sets the value of the thread-specific storage identified by tss_id
for the current thread to val
. Different threads may set different values to the same key.
The destructor, if available, is not invoked.
tss_id | - | thread-specific storage key, obtained from tss_create and not deleted by tss_delete |
val | - | value to set thread-specific storage to |
thrd_success
if successful, thrd_error
otherwise.
The POSIX equivalent of this function is pthread_setspecific
.
Typically TSS is used to store pointers to blocks of dynamically allocated memory that have been reserved for use by the calling thread.
tss_set
may be called in the TSS destructor. If the destructor exits with non-NULL value in the TSS storage, it will be retried by thrd_exit
up to TSS_DTOR_ITERATIONS
times, after which the storage will be lost.
int thread_func(void *arg) { tss_t key; if (thrd_success == tss_create(&key, free)) { tss_set(key, malloc(4)); // stores a pointer on TSS // ... } } // calls free() for the pointer stored on TSS
(C11) | reads from thread-specific storage (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/thread/tss_set