فهرست منبع

[workqueue] 队列销毁时取消所有工作并释放内核对象

tangyuxin 4 سال پیش
والد
کامیت
3ef3fb50af
1فایلهای تغییر یافته به همراه2 افزوده شده و 0 حذف شده
  1. 2 0
      components/drivers/src/workqueue.c

+ 2 - 0
components/drivers/src/workqueue.c

@@ -231,7 +231,9 @@ rt_err_t rt_workqueue_destroy(struct rt_workqueue *queue)
 {
     RT_ASSERT(queue != RT_NULL);
 
+    rt_workqueue_cancel_all_work();
     rt_thread_delete(queue->work_thread);
+    rt_sem_detach(&(queue->sem));
     RT_KERNEL_FREE(queue);
 
     return RT_EOK;