Sion
18-05-2002, 20:06
Hallo,
ich versuche vergeblich die Priorität eines pthreads hochzusetzen, was aber bislang noch nicht so recht funktionieren will.
Ich versuche dies mit folgender Funktion:
void Thread_increase_priority()
{
struct sched_param my_param;
int my_policy, res;
pthread_getschedparam(pthread_self(), &my_policy, &my_param);
my_param.sched_priority+=1;
res=pthread_setschedparam(pthread_self(), my_policy, &my_param);
// res ist hier == EINVAL
}
Das Ergebnis ist, daß pthread_setschedparam EINVAL zurückliefert. Wenn ich my_param.sched_priority auf 0 setze oder unangetastet lasse, klappt der Funktionsaufruf (res==0).
Hat jemand einen Tipp, wie ich das hinbekomme?
Kann es sein, daß ich zuerst die policy ändern muß?
Wo gibt es im Web gute Doku dazu, ich konnte bislang nichts vernünftiges finden.
Danke, Sion
ich versuche vergeblich die Priorität eines pthreads hochzusetzen, was aber bislang noch nicht so recht funktionieren will.
Ich versuche dies mit folgender Funktion:
void Thread_increase_priority()
{
struct sched_param my_param;
int my_policy, res;
pthread_getschedparam(pthread_self(), &my_policy, &my_param);
my_param.sched_priority+=1;
res=pthread_setschedparam(pthread_self(), my_policy, &my_param);
// res ist hier == EINVAL
}
Das Ergebnis ist, daß pthread_setschedparam EINVAL zurückliefert. Wenn ich my_param.sched_priority auf 0 setze oder unangetastet lasse, klappt der Funktionsaufruf (res==0).
Hat jemand einen Tipp, wie ich das hinbekomme?
Kann es sein, daß ich zuerst die policy ändern muß?
Wo gibt es im Web gute Doku dazu, ich konnte bislang nichts vernünftiges finden.
Danke, Sion