Namespaces
Variants

tss_delete

From cppreference.net
Definido en el encabezado <threads.h>
void tss_delete ( tss_t tss_id ) ;
(desde C11)

Destruye el almacenamiento específico del hilo identificado por tss_id .

El destructor, si uno fue registrado por tss_create , no es llamado (solo son llamados al finalizar el hilo, ya sea mediante thrd_exit o al retornar de la función del hilo), es responsabilidad del programador asegurar que cada hilo que conoce tss_id realizó toda la limpieza necesaria, antes de que se realice la llamada a tss_delete .

Si tss_delete se llama mientras otro hilo está ejecutando destructores para tss_id , no está especificado si esto cambia el número de invocaciones al destructor asociado.

Si tss_delete se llama mientras el hilo que realiza la llamada está ejecutando destructores, entonces el destructor asociado con tss_id no se ejecutará nuevamente en este hilo.

Contenidos

Parámetros

tss_id - clave de almacenamiento específica del hilo previamente devuelta por tss_create y aún no eliminada por tss_delete

Valor de retorno

(ninguno)

Notas

El equivalente POSIX de esta función es pthread_key_delete .

La razón por la cual tss_delete nunca llama a los destructores es que los destructores (llamados al finalizar el hilo) normalmente están destinados a ser ejecutados por el mismo hilo que originalmente estableció el valor (mediante tss_set ) con el que el destructor trabajará, e incluso pueden depender de los valores de ese u otros datos específicos del hilo según los ve ese hilo. El hilo que ejecuta tss_delete no tiene acceso al TSS de otros hilos. Incluso si fuera posible llamar al destructor para el valor propio de cada hilo asociado con tss_id , tss_delete tendría que sincronizarse con cada hilo aunque solo fuera para examinar si el valor de este TSS en ese hilo es nulo (los destructores solo se llaman para valores no nulos).

Ejemplo

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.26.6.2 La función tss_delete (p: 282)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.26.6.2 La función tss_delete (p: 386)