pthread_attr_setprio(3-thr) pthread_attr_setprio(3-thr)
NAME
pthreadattrsetprio - Das Attribut für die Scheduling-Priorität der
Thread-Erstellung ändern
SYNTAX
#include <pthread.h>
int pthreadattrsetprio(
pthreadattrt *attr,
int priority);
PARAMETER
attr Objekt für Thread-Attribute, das geändert wird.
priority Neuer Wert für das Prioritätsattribut. Dieses Prioritätsat-
tribut ist von der Scheduling-Strategie abhängig. Gültige
Werte liegen in einem der folgenden Bereiche:
PRIOTHERMIN <= priority <= PRIOTHERMAX
(Wird mit SCHEDOTHER verwendet)
PRIFIFOMIN <= priority <= PRIFIFOMAX
(wird mit SCHEDFIFO verwendet)
PRIRRMIN <= priority <= PRIRRMAX
(wird mit SCHEDRR verwendet)
PRIFGMINNP <= priority <= PRIFGMAXNP
(wird mit SCHEDFGNP verwendet)
PRIBGMINNP <= priority <= PRIBGMAXNP
(wird mit SCHEDBGNP verwendet)
Die Standardpriorität ist die Mitte zwischen PRIOTHERMIN und
PRIOTHERMAX. Verwenden Sie zur Angabe einer Mindestpriorität oder
einer maximalen Priorität das entsprechende Symbol, zum Beipiel
PRIFIFOMIN oder PRIFIFOMAX. Verwenden Sie zur Angabe eines Werts
zwischen der Mindestpriorität und der maximalen Priorität den entspre-
chenden arithmetischen Ausdruck. Wenn Sie beispielsweise eine Priori-
tät in der Mitte zwischen Minimum und Maximum für die Scheduling-
Strategie für zyklische Weiterschaltung (Round Robin) angeben wollen,
geben Sie in der Syntax Ihrer Programmiersprache folgendes Konzept an:
prirrmid = (PRIRRMIN + PRIRRMAX + 1)/2
Ergibt sich aus dem Ausdruck ein Wert, der außerhalb des Bereichs zwi-
schen Minimum und Maximum liegt, führt dies bei Verwendung des Aus-
drucks zu einem Fehler.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
pthread_attr_setprio(3-thr) pthread_attr_setprio(3-thr)
BESCHREIBUNG
Die Routine pthreadattrsetprio() setzt die Ausführungspriorität der
Threads, die mit dem über den Parameter attr angegebenen Attributob-
jekt erstellt werden.
Standardmäßig übernimmt ein erstellter Thread die Priorität des
Thread, der pthreadcreate() aufruft. Wenn Sie mit dieser Routine eine
Priorität angeben wollen, muß die standardmäßige Scheduling-Übernahme
zur Zeit der Thread-Erstellung deaktiviert werden. Rufen Sie vor die-
ser und der Routine pthreadcreate(), die Routine
pthreadattrsetinheritsched() auf, und geben Sie den Wert
PTHREADDEFAULTSCHED für den Übernahmeparameter inherit an.
Eine Anwendung gibt die Priorität nur an, um die Dringlichkeit zur
Ausführung dieses Thread in Relation zu anderen Threads auszudrücken.
Die Priorität wird nicht zur Steuerung des gegenseitigen Ausschlusses
beim Zugriff auf gemeinsam genutzte Daten verwendet.
RÜCKGABEWERTE
Wenn die Funktion fehlschlägt, kann errno auf einen der folgenden
Werte gesetzt werden:
EINVAL Der durch attr angegebene Wert ist ungültig.
ERANGE Einer oder mehrere der angegebenen Parameter weisen einen
ungültigen Wert auf.
SIEHE AUCH
pthreadattrcreate(3-thr), pthreadattrgetprio(3-thr),
pthreadattrsetinheritsched(3-thr), pthreadcreate(3-thr).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98