diff --git a/kernel/core/tos_sem.c b/kernel/core/tos_sem.c index 40ca0bde9d74b66369e8ce287d03ae2aceed5962..c0ddbde1e5688e49402103423de89bfb014ae223 100644 --- a/kernel/core/tos_sem.c +++ b/kernel/core/tos_sem.c @@ -22,9 +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); - + + 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);