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>
|
2016-06-28 NIIBE Yutaka <gniibe@fsij.org>
|
||||||
|
|
||||||
* chopstx.h (struct chx_poll_head): Declare here.
|
* chopstx.h (struct chx_poll_head): Declare here.
|
||||||
|
|||||||
16
chopstx.c
16
chopstx.c
@@ -1880,10 +1880,20 @@ chopstx_setpriority (chopstx_prio_t prio)
|
|||||||
{
|
{
|
||||||
struct chx_thread *tp = running;
|
struct chx_thread *tp = running;
|
||||||
|
|
||||||
tp->prio_orig = prio;
|
if (tp->prio < CHOPSTX_PRIO_INHIBIT_PREEMPTION
|
||||||
if (prio >= CHOPSTX_PRIO_INHIBIT_PREEMPTION)
|
&& prio >= CHOPSTX_PRIO_INHIBIT_PREEMPTION)
|
||||||
|
{
|
||||||
chx_cpu_sched_lock ();
|
chx_cpu_sched_lock ();
|
||||||
tp->prio = prio;
|
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