Namespaces
Variants

tss_set

From cppreference.net
Definido en el encabezado <threads.h>
int tss_set ( tss_t tss_id, void * val ) ;
(desde C11)

Establece el valor del almacenamiento específico del hilo identificado por tss_id para el hilo actual a val . Diferentes hilos pueden establecer valores diferentes para la misma clave.

El destructor, si está disponible, no se invoca.

Contenidos

Parámetros

tss_id - clave de almacenamiento específica del hilo, obtenida de tss_create y no eliminada por tss_delete
val - valor a establecer para el almacenamiento específico del hilo

Valor de retorno

thrd_success si es exitoso, thrd_error en caso contrario.

Notas

El equivalente POSIX de esta función es pthread_setspecific .

Normalmente, TSS se utiliza para almacenar punteros a bloques de memoria asignados dinámicamente que han sido reservados para su uso por el hilo que realiza la llamada.

tss_set puede ser llamado en el destructor TSS. Si el destructor termina con un valor no nulo en el almacenamiento TSS, será reintentado por thrd_exit hasta TSS_DTOR_ITERATIONS veces, después de lo cual el almacenamiento se perderá.

Ejemplo

int thread_func(void *arg) {
    tss_t key;
    if (thrd_success == tss_create(&key, free)) {
        tss_set(key, malloc(4)); // almacena un puntero en TSS
        // ...
    }
} // llama a free() para el puntero almacenado en TSS

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.26.6.4 La función tss_set (p: 282-283)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.26.6.4 La función tss_set (p: 387)

Véase también

(C11)
lee desde el almacenamiento específico del hilo
(función)