pthread_setprio(3-thr) pthread_setprio(3-thr)
NAME
pthreadsetprio - Aktuelle Priorität eines Thread ändern
SYNTAX
#include <pthread.h>
int pthreadsetprio(
pthreadt thread,
int priority);
PARAMETER
thread Thread, dessen Priorität geändert wird.
priority Neuer Prioritätswert für den in thread angegebenen Thread.
Der Prioritätswert ist von der Scheduling-Strategie abhän-
gig. Gültige Werte liegen innerhalb der folgenden Bereiche:
PRIOTHERMIN <= priority <= PRIOTHERMAX
PRIFIFOMIN <= priority <= PRIFIFOMAX
PRIRRMIN <= priority <= PRIRRMAX
PRIFGMINNP <= priority <= PRIFGMAXNP
PRIBGMINNP <= priority <= PRIBGMAXNP
Wenn Sie einen neuen Thread erstellen, ohne ein Objekt für die
Thread-Attribute anzugeben, das ein geändertes Prioritätsattribut ent-
hält, liegt die Standardpriorität für den neu erstellten Thread in der
Mitte zwischen PRIOTHERMIN und PRIOTHERMAX (die Mitte zwischen
Minimum und Maximum für die Strategie SCHEDOTHER).
Wenn Sie diese Routine zur Angabe einer Mindestpriorität oder einer
maximalen Priorität aufrufen, verwenden Sie hierzu das entsprechende
Symbol; zum Beispiel PRIFIFOMIN oder PRIFIFOMAX. Verwenden Sie zur
Angabe eines Werts zwischen Minimum und Maximum einen entsprechenden
arithmetischen Ausdruck. Wenn Sie beispielsweise eine Prioritä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.
BESCHREIBUNG
Die Routine pthreadsetprio() ändert die aktuelle Priorität eines
Thread. Ein Thread kann seine eigene Priorität über die von
pthreadself() zurückgegebene ID ändern.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
pthread_setprio(3-thr) pthread_setprio(3-thr)
Die Änderung der Priorität eines Thread kann zur Folge haben, daß die-
ser ausgeführt oder durch einen anderen Thread abgelöst wird. Die Aus-
wirkungen unterschiedlicher Prioritätswerte hängen von der jeweiligen
Scheduling-Priorität ab, die dem Thread zugeordnet ist. Die ursprüng-
liche Scheduling-Priorität wird durch Aufrufen der Routine
pthreadattrsetprio() gesetzt.
Beachten Sie, daß die Routine pthreadattrsetprio() das Prioritätsat-
tribut setzt, mit dem die Priorität eines neu erstellten Thread einge-
richtet wird. Die Routine pthreadsetprio() dagegen ändert die Priori-
tät eines bereits vorhandenen Thread.
RÜCKGABEWERTE
Bei erfolgreicher Ausführung gibt diese Routine die vorherige Priori-
tät zurück. Wenn die Funktion fehlschlägt, kann errno auf einen der
folgenden Werte gesetzt werden:
EINVAL Der durch thread angegebene Wert ist ungültig.
ENOTSUP Es wird versucht, die Priorität auf einen nicht unterstütz-
ten Wert zu setzen.
ESRCH Der durch thread angegebene Wert verweist nicht auf einen
vorhandenen Thread.
EPERM Der Aufrufer verfügt nicht über die Berechtigungene, die zum
Setzen der Priorität für den angegebenen Thread erforderlich
sind.
SIEHE AUCH
pthreadattrsetprio(3-thr), pthreadattrsetsched(3-thr),
pthreadcreate(3-thr), pthreadself(3-thr),
pthreadsetscheduler(3-thr).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98