Namespaces
Variants

tss_delete

From cppreference.net
Défini dans l'en-tête <threads.h>
void tss_delete ( tss_t tss_id ) ;
(depuis C11)

Détruit le stockage spécifique au thread identifié par tss_id .

Le destructeur, s'il a été enregistré par tss_create , n'est pas appelé (ils ne sont appelés qu'à la fin du thread, soit par thrd_exit soit en retournant de la fonction du thread), il est de la responsabilité du programmeur de s'assurer que chaque thread ayant connaissance de tss_id ait effectué tout nettoyage nécessaire, avant que l'appel à tss_delete ne soit effectué.

Si tss_delete est appelé alors qu'un autre thread exécute des destructeurs pour tss_id , il n'est pas spécifié si cela modifie le nombre d'invocations du destructeur associé.

Si tss_delete est appelé alors que le thread appelant exécute des destructeurs, alors le destructeur associé à tss_id ne sera pas exécuté à nouveau sur ce thread.

Table des matières

Paramètres

tss_id - clé de stockage spécifique au thread précédemment retournée par tss_create et non encore supprimée par tss_delete

Valeur de retour

(aucun)

Notes

L'équivalent POSIX de cette fonction est pthread_key_delete .

La raison pour laquelle tss_delete n'appelle jamais les destructeurs est que les destructeurs (appelés à la fin du thread) sont normalement destinés à être exécutés par le même thread qui a initialement défini la valeur (via tss_set ) que le destructeur va manipuler, et peuvent même dépendre des valeurs de cette donnée ou d'autres données spécifiques au thread telles que vues par ce thread. Le thread exécutant tss_delete n'a pas accès aux TSS des autres threads. Même s'il était possible d'appeler le destructeur pour la valeur propre à chaque thread associée à tss_id , tss_delete devrait se synchroniser avec chaque thread ne serait-ce que pour examiner si la valeur de ce TSS dans ce thread est nulle (les destructeurs ne sont appelés que pour les valeurs non nulles).

Exemple

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.26.6.2 La fonction tss_delete (p : 282)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.26.6.2 La fonction tss_delete (p: 386)