pthread_suspend_np, pthread_unsuspend_np et pthread_continue_np Sous-routine
Objectif
Interrompt et reprend l'exécution de la pthread spécifiée par thread.
Bibliothèque
Bibliothèque d'unités d'exécution (libpthreads.a)
Syntaxe
#include <pthread.h>
pthread_t thread;
int pthread_suspend_np(thread)
int pthread_unsuspend_np (thread);
int pthread_continue_np(thread);
Descriptif
La sous-routine pthread_suspend_np interrompt immédiatement l'exécution du pthread spécifié par thread. En cas de retour réussi de pthread_suspend_np, le pthread suspendu n'est plus en cours d'exécution. Si pthread_suspend_np est appelé pour un pthread qui est déjà suspendu, le pthread est inchangé et pthread_suspend_np est renvoyé avec succès.
Un interblocage peut se produire si pthread_suspend_np est utilisé avec les fonctions pthread suivantes.
pthread_cancel
pthread_detach
pthread_join
pthread_getunique_np
pthread_join_np
pthread_setschedparam
pthread_getschedparam
pthread_kill
La routine pthread_unsuspend_np décrémente le nombre d'interruptions et une fois que le nombre est égal à zéro, elle reprend l'exécution d'une unité d'exécution suspendue. Si pthread_unsuspend_np est appelé pour un pthread qui n'est pas suspendu, le pthread n'est pas modifié et pthread_unsuspend_np renvoie un résultat positif.
La routine pthread_continue_np efface le nombre d'interruptions et reprend l'exécution d'une pthread suspendue. Si pthread_continue_np est appelé pour un pthread qui n'est pas suspendu, le pthread n'est pas modifié et pthread_continue_np renvoie un résultat positif.
Un pthread suspendu ne sera pas réveillé par un signal. Le signal reste en attente jusqu'à ce que l'exécution de pthread soit reprise par pthread_continue_np.
Paramètres
| Article | Descriptif |
|---|---|
| unité d"exécution | Indique l'unité d'exécution cible. |
Valeurs renvoyées
La valeur zéro est renvoyée en cas de réussite. Une valeur différente de zéro indique une erreur.
Codes d'erreur
Si l'une des conditions suivantes se produit, pthread_suspend_np, pthread_unsuspend_np et pthread_continue_np échouent et renvoient la valeur correspondante:
| Article | Descriptif |
|---|---|
| ESRCH | L'unité d'exécution cible spécifiée par l'attribut thread est introuvable dans le processus en cours. |