TSS(3) NetBSD Library Functions Manual TSS(3)
NAME
tss -- thread-specific storage functions
LIBRARY
POSIX Threads Library (libpthread, -lpthread)
SYNOPSIS
#include <threads.h> typedef void (*tss_dtor_t) (void *) int tss_create(tss_t *key, tss_dtor_t dtor); void tss_delete(tss_t key); void * tss_get(tss_t key); int tss_set(tss_t key, void *val); #define TSS_DTOR_ITERATIONS /* implementation specified */
DESCRIPTION
There are two groups of storage in C programs: - local storage, - global storage. Multithreaded programs in C add the third group thread-specific storage. This data is private to thread and every entry of this type has an asso- ciated tss_t opaque key that is global to all threads in the process. A thread using the tss_t * pointer accesses private data. The tss_create() function creates a thread-specific storage with the key handler with optional destructor dtor. If the dtor parameter is not NULL, then specified appropriate destructor will be called on thread ter- mination. The destructor is not called if a thread called the tss_delete() function for the specified key. If, after all the destruc- tors have been called for all non-NULL values with associated destruc- tors, there are still some non-NULL values with associated destructors, then the process is repeated. If, after at least TSS_DTOR_ITERATIONS iterations of destructor calls for outstanding non-NULL values, there are still some non-NULL values with associated destructors, the NetBSD imple- mentation stops calling further destructors. The thrd_exit(3) function must not be called from a destructor. The tss_delete() function frees resources used by the thread-specific storage identified by the key object. This function can be called inside the dtor destructor, however the destructor is not called by tss_delete(). The tss_get() and tss_set() functions are used to get and set thread-spe- cific storage.
RETURN VALUES
The tss_create() function returns thrd_success on success, otherwise thrd_error on failure. The tss_delete() function returns no value. The tss_get() returns pointer to thread-specific storage on success or NULL on failure. The tss_set() function returns thrd_success on success, otherwise thrd_error on failure.
SEE ALSO
pthread_getspecific(3), pthread_key_create(3), threads(3)
STANDARDS
The tss interface conforms to ISO/IEC 9899:2011 (``ISO C11'').
HISTORY
This interface first appeared in NetBSD 9.
AUTHORS
Kamil Rytarowski <kamil@NetBSD.org> NetBSD 11.99 October 16, 2016 NetBSD 11.99
Powered by man-cgi (2025-09-08). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.