From 4434c87a7138f796cefd03a90f7625caaeb08f9a Mon Sep 17 00:00:00 2001 From: Grissiom Date: Wed, 18 Dec 2013 21:36:29 +0800 Subject: [PATCH] TC: release the sem in cleanup The sem that has been created should be deleted. The sem that has been inited should be detached. --- examples/kernel/semaphore_priority.c | 6 ++++++ examples/kernel/semaphore_producer_consumer.c | 4 ++++ 2 files changed, 10 insertions(+) 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); -- GitLab