]> granicus.if.org Git - esp-idf/commit
freertos: call tick hooks on CPU1 even if CPU0 scheduler is suspended
authorIvan Grokhotkov <ivan@espressif.com>
Wed, 18 Jan 2017 15:14:29 +0000 (23:14 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Wed, 18 Jan 2017 15:19:05 +0000 (23:19 +0800)
commit31ec0a7c4453ace7bddac6258fd676381b2cc1ae
tree06e7443baef41c1604e1614a505d90972fe23367
parentf7e2e456e41145f6922b5c6a53ee3f003a389aa7
freertos: call tick hooks on CPU1 even if CPU0 scheduler is suspended

The block which dispatches ticks on CPU1 was a copy of the code block
for the normal path (CPU0). It used to check uxPendedTicks, with the
logic that uxPendedTicks can be 0 iff the scheduler is not suspended.

On CPU1 however, uxPendedTicks is not related to the state of the
scheduler (as uxPendedTicks is updated on CPU0). Due to this, if CPU0
scheduler was suspended, and uxPendedTicks happened to be nonzero,
tick hooks on CPU1 didn’t run, even though CPU1 scheduler was working.

This change removes the check for uxPendedTicks in CPU1 code path,
so that the tick hooks on CPU1 always get called (as for the CPU0 code
path).
components/freertos/tasks.c