Minor code-cleanup for priority inheritance.

This commit is contained in:
NIIBE Yutaka
2019-02-22 09:52:28 +09:00
parent 53e4d1a371
commit 078c8db5d7

View File

@@ -567,19 +567,21 @@ chx_exit (void *retval)
/* /*
* Lower layer mutex unlocking. Called with schedule lock held. * Lower layer mutex unlocking. Called with schedule lock held.
* Return PRIO of the thread which is waken up.
*/ */
static chopstx_prio_t static chopstx_prio_t
chx_mutex_unlock (chopstx_mutex_t *mutex) chx_mutex_unlock (chopstx_mutex_t *mutex)
{ {
struct chx_thread *tp; struct chx_thread *tp;
chopstx_prio_t prio = 0;
mutex->owner = NULL; mutex->owner = NULL;
running->mutex_list = mutex->list; running->mutex_list = mutex->list;
mutex->list = NULL; mutex->list = NULL;
tp = (struct chx_thread *)ll_pop (&mutex->q); tp = (struct chx_thread *)ll_pop (&mutex->q);
if (tp) if (!tp)
return 0;
else
{ {
uint16_t newprio = running->prio_orig; uint16_t newprio = running->prio_orig;
chopstx_mutex_t *m; chopstx_mutex_t *m;
@@ -595,11 +597,8 @@ chx_mutex_unlock (chopstx_mutex_t *mutex)
/* Then, assign it. */ /* Then, assign it. */
running->prio = newprio; running->prio = newprio;
if (prio < tp->prio) return tp->prio;
prio = tp->prio;
} }
return prio;
} }
#define CHOPSTX_PRIO_MASK ((1 << CHOPSTX_PRIO_BITS) - 1) #define CHOPSTX_PRIO_MASK ((1 << CHOPSTX_PRIO_BITS) - 1)