fix setpriority
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
2016-06-29 NIIBE Yutaka <gniibe@fsij.org>
|
||||
|
||||
* chopstx.c (chopstx_setpriority): Fix sched_lock/unlock.
|
||||
|
||||
2016-06-28 NIIBE Yutaka <gniibe@fsij.org>
|
||||
|
||||
* chopstx.h (struct chx_poll_head): Declare here.
|
||||
|
||||
18
chopstx.c
18
chopstx.c
@@ -1880,10 +1880,20 @@ chopstx_setpriority (chopstx_prio_t prio)
|
||||
{
|
||||
struct chx_thread *tp = running;
|
||||
|
||||
tp->prio_orig = prio;
|
||||
if (prio >= CHOPSTX_PRIO_INHIBIT_PREEMPTION)
|
||||
chx_cpu_sched_lock ();
|
||||
tp->prio = prio;
|
||||
if (tp->prio < CHOPSTX_PRIO_INHIBIT_PREEMPTION
|
||||
&& prio >= CHOPSTX_PRIO_INHIBIT_PREEMPTION)
|
||||
{
|
||||
chx_cpu_sched_lock ();
|
||||
tp->prio = tp->prio_orig = prio;
|
||||
}
|
||||
else if (tp->prio >= CHOPSTX_PRIO_INHIBIT_PREEMPTION
|
||||
&& prio < CHOPSTX_PRIO_INHIBIT_PREEMPTION)
|
||||
{
|
||||
tp->prio = tp->prio_orig = prio;
|
||||
chx_cpu_sched_unlock ();
|
||||
}
|
||||
else
|
||||
tp->prio = tp->prio_orig = prio;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user