Sous-routine pthread_attr_setstackaddr
Objectif
Définit la valeur de l'attribut stackaddr d'un objet d'attributs d'unité d'exécution.
Bibliothèque
Bibliothèque d'unités d'exécution (libpthreads.a)
Syntaxe
#include <pthread.h>
int pthread_attr_setstackaddr (attr, stackaddr)
pthread_attr_t *attr;
void *stackaddr;Descriptif
La sous-routine pthread_attr_setstackaddr définit la valeur de l'attribut stackaddr de l'objet d'attributs d'unité d'exécution attr. Cet attribut indique l'adresse de pile d'une unité d'exécution créée avec cet objet d'attributs.
Remarque: Le fichier d'en-tête pthread.h doit être le premier fichier inclus de chaque fichier source utilisant la bibliothèque d'unités d'exécution. Sinon, l'indicateur de compilation -D_THREAD_SAFE doit être utilisé ou le compilateur cc_r doit être utilisé. Dans ce cas, l'indicateur est automatiquement défini.
Une mise à disposition a été effectuée dans libpthreadspour créer des pages de garde pour la pile d'utilisateurs en interne. Il est utilisé uniquement à des fins de débogage. Par défaut, il est désactivé et peut être appelé en exportant la variable d'environnement suivante:
AIXTHREAD_GUARDPAGES_FOR_USER_STACK=n (Where n is the decimal number of guard pages.)Remarque: même si elle est exportée, les pages de garde ne seront construites que si les attributs stackaddr et stacksize ont été définis par l'appelant pour l'unité d'exécution. En outre, les pages de garde et les pages d'alignement seront créées à partir de la pile de l'utilisateur (ce qui réduira la taille de la pile). Si la nouvelle taille de pile après la création de pages de garde est inférieure à la taille de pile minimale (PTHREAD_STACK_MIN), les pages de garde ne seront pas construites.
Paramètres
| Article | Descriptif |
|---|---|
| attr | Indique l'objet d'attributs d'unité d'exécution. |
| adr_pile | Indique l'adresse de pile à définir. C'est un pointeur vide. L'adresse à transmettre n'est pas le début de l'adresse générée par malloc mais le début de la pile. Par exemple : |
Valeurs renvoyées
Une fois l'opération terminée, la valeur 0 est renvoyée. Sinon, un code d'erreur est renvoyé.
Codes d'erreur
La sous-routine pthread_attr_setstackaddr échoue si la condition suivante est vérifiée:
| Article | Descriptif |
|---|---|
| EINVAL | Le paramètre attr n'est pas valide. |
| ENOSYS | L'option POSIX d'adresse de pile n'est pas implémentée. |