Sous-routine pthread_attr_setstacksize

Objectif

Définit la valeur de l'attribut stacksize d'un objet d'attribut d'unité d'exécution.

Bibliothèque

Bibliothèque d'unités d'exécution (libpthreads.a)

Syntaxe

#include <pthread.h>

int pthread_attr_setstacksize (attr, stacksize)
pthread_attr_t *attr;
size_t  stacksize;

Descriptif

La sous-routine pthread_attr_setstacksize définit la valeur de l'attribut stacksize de l'objet d'attributs d'unité d'exécution attr. Cet attribut indique la taille de pile minimale, en octets, d'une unité d'exécution créée avec cet objet d'attribut.

La taille de pile allouée est toujours un multiple de 8 ko, supérieure ou égale à la taille de pile minimale de 56 ko (PTHREAD_STACK_MIN). La formule suivante permet de calculer la taille de pile allouée: si la taille de pile requise est inférieure à 56 ko, la taille de pile allouée est de 56 ko ; sinon, si la taille de pile requise appartient à la plage de (56 + (n -1) * 16) ko à (56 + n * 16) ko, la taille de pile allouée est de (56 + n * 16) ko.

Remarque: le fichier d'en-tête pthread.h doit être le premier fichier inclus de chaque fichier source à l'aide de 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.

Paramètres

Tableau 1. Paramètres
Article Descriptif
attr Indique l'objet d'attributs d'unité d'exécution.
stacksize Indique la taille de pile minimale, en octets, à définir. La taille de pile par défaut est PTHREAD_STACK_MIN. La taille de pile minimale doit être supérieure ou égale à cette valeur.

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_setstacksize échoue si la condition suivante est vraie:

Tableau 2. Codes d'erreur
Article Descriptif
EINVAL Le paramètre attr n'est pas valide ou la valeur du paramètre stacksize dépasse une limite imposée par le système.
ENOSYS L'option de taille de pile POSIX n'est pas implémentée.