tss_set
|
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
|
Esta sección está incompleta
Razón: mejorar, quizás buscar ejemplos de POSIX para inspiración |
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) |