tss_delete
|
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
|
Cette section est incomplète
Raison : aucun 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)