From d0e2355cf6424a608921713bce0896c20195e69e Mon Sep 17 00:00:00 2001 From: David Lin Date: Tue, 9 Feb 2021 12:39:48 +0800 Subject: [PATCH] Update tos_sem.c --- kernel/core/tos_sem.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/kernel/core/tos_sem.c b/kernel/core/tos_sem.c index 650951ad..c0ddbde1 100644 --- a/kernel/core/tos_sem.c +++ b/kernel/core/tos_sem.c @@ -22,15 +22,14 @@ __API__ k_err_t tos_sem_create_max(k_sem_t *sem, k_sem_cnt_t init_count, k_sem_cnt_t max_count) { TOS_PTR_SANITY_CHECK(sem); - - sem->count = init_count; - sem->count_max = max_count; - if(sem->count > sem->count_max) - { - sem->count_max = sem->count; + if (unlikely(init_count > max_count)) { + init_count = max_count; } + sem->count = init_count; + sem->count_max = max_count; + pend_object_init(&sem->pend_obj); TOS_OBJ_INIT(sem, KNL_OBJ_TYPE_SEMAPHORE); -- GitLab