summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGrissiom <[email protected]>2013-12-18 21:36:29 +0800
committerGrissiom <[email protected]>2013-12-18 21:46:08 +0800
commit4434c87a7138f796cefd03a90f7625caaeb08f9a (patch)
treec25e567712b6785592cdfdd89d1b206616d267cb /examples
parente9e8e3f3cafbbd1287e4226b93b9ad5d40f211e3 (diff)
TC: release the sem in cleanup
The sem that has been created should be deleted. The sem that has been inited should be detached.
Diffstat (limited to 'examples')
-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);