summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/kernel/semaphore_priority.c6
-rw-r--r--examples/kernel/semaphore_producer_consumer.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/examples/kernel/semaphore_priority.c b/examples/kernel/semaphore_priority.c
index c106a25d5e..2bbeb80389 100644
--- a/examples/kernel/semaphore_priority.c
+++ b/examples/kernel/semaphore_priority.c
@@ -100,6 +100,12 @@ static void _tc_cleanup()
rt_thread_delete(t2);
rt_thread_delete(worker);
+ if (sem)
+ {
+ rt_sem_delete(sem);
+ sem = RT_NULL;
+ }
+
if (t1_count > t2_count)
tc_done(TC_STAT_FAILED);
else
diff --git a/examples/kernel/semaphore_producer_consumer.c b/examples/kernel/semaphore_producer_consumer.c
index ec0bf2234c..e7c0522223 100644
--- a/examples/kernel/semaphore_producer_consumer.c
+++ b/examples/kernel/semaphore_producer_consumer.c
@@ -119,6 +119,10 @@ static void _tc_cleanup()
/* 调度器上锁,上锁后,将不再切换到其他线程,仅响应中断 */
rt_enter_critical();
+ rt_sem_detach(&sem_lock);
+ rt_sem_detach(&sem_empty);
+ rt_sem_detach(&sem_full);
+
/* 删除线程 */
if (producer_tid != RT_NULL && producer_tid->stat != RT_THREAD_CLOSE)
rt_thread_delete(producer_tid);