Browse Source

Merge pull request #6428 from OTAkeys/fix/xtimer_mutex_infinite_loop

xtimer: fix mutex unlocking in _mutex_timeout
pr/spi.typo
Oleg Hahm 6 years ago committed by GitHub
parent
commit
9a38c1085c
  1. 6
      sys/xtimer/xtimer.c

6
sys/xtimer/xtimer.c

@ -233,8 +233,12 @@ static void _mutex_timeout(void *arg)
mutex_thread_t *mt = (mutex_thread_t *)arg;
mt->timeout = 1;
list_node_t *node = list_remove(&mt->mutex->queue,
(list_node_t *)&mt->thread->rq_entry);
if ((node != NULL) && (mt->mutex->queue.next == NULL)) {
mt->mutex->queue.next = MUTEX_LOCKED;
}
sched_set_status(mt->thread, STATUS_PENDING);
list_remove(&mt->mutex->queue, (list_node_t *)&mt->thread->rq_entry);
thread_yield_higher();
}

Loading…
Cancel
Save