| Defined in header |
void tss_delete( tss_t tss_id );
Destroys the thread-specific storage identified by
The destructor, if one was registered by
tss_create, is not called (they are only called at thread exit, either by
thrd_exit or by returning from the thread function), it is the responsibility of the programmer to ensure that every thread that is aware of
tss_id performed all necessary cleanup, before the call to
tss_delete is made.
tss_delete is called while another thread is executing destructors for
tss_id, it's unspecified whether this changes the number of invocations to the associated destructor.
tss_delete is called while the calling thread is executing destructors, then the destructor associated with
tss_id will not be executed again on this thread.
|tss_id||-|| thread-specific storage key previously returned by
The POSIX equivalent of this function is pthread_key_delete.
tss_delete never calls destructors is that the destructors (called at thread exit) are normally intended to be executed by the same thread that originally set the value (via
tss_set) that the destructor will be dealing with, and may even rely on the values of that or other thread-specific data as seen by that thread. The thread executing
tss_delete has no access to other threads' TSS. Even if it were possible to call the destructor for each thread's own value associated with
tss_delete would have to synchronize with every thread if only to examine whether the value of this TSS in that thread is null (destructors are only called against non-null values).
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.