diff options
| author | Grissiom <[email protected]> | 2013-12-18 21:36:29 +0800 |
|---|---|---|
| committer | Grissiom <[email protected]> | 2013-12-18 21:46:08 +0800 |
| commit | 4434c87a7138f796cefd03a90f7625caaeb08f9a (patch) | |
| tree | c25e567712b6785592cdfdd89d1b206616d267cb | |
| parent | e9e8e3f3cafbbd1287e4226b93b9ad5d40f211e3 (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.
| -rw-r--r-- | examples/kernel/semaphore_priority.c | 6 | ||||
| -rw-r--r-- | examples/kernel/semaphore_producer_consumer.c | 4 |
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); |
