kernel: timer: Call user handler without spinlock

Add spinlock unlocking before calling timer expiration
handler. Locking was introduced by dde3d6c.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
Krzysztof Chruscinski 2021-11-03 16:24:11 +01:00 committed by Anas Nashif
parent 02c32d4474
commit 8979fbc906

View file

@ -43,7 +43,10 @@ void z_timer_expiration_handler(struct _timeout *t)
/* invoke timer expiry function */ /* invoke timer expiry function */
if (timer->expiry_fn != NULL) { if (timer->expiry_fn != NULL) {
/* Unlock for user handler. */
k_spin_unlock(&lock, key);
timer->expiry_fn(timer); timer->expiry_fn(timer);
key = k_spin_lock(&lock);
} }
if (!IS_ENABLED(CONFIG_MULTITHREADING)) { if (!IS_ENABLED(CONFIG_MULTITHREADING)) {