Parcourir la source

[wq][fix]工作队列默认使用C99标准实现遍历

Rbb666 il y a 3 mois
Parent
commit
2ab5827704
1 fichiers modifiés avec 3 ajouts et 1 suppressions
  1. 3 1
      components/drivers/ipc/workqueue.c

+ 3 - 1
components/drivers/ipc/workqueue.c

@@ -142,7 +142,9 @@ static rt_err_t _workqueue_submit_work(struct rt_workqueue *queue,
         work->timeout_tick  = rt_tick_get() + ticks;
 
         list_tmp = &(queue->delayed_list);
-        rt_list_for_each_entry(work_tmp, &(queue->delayed_list), list)
+        for (work_tmp = rt_list_entry(list_tmp->next, struct rt_work, list);
+                &work_tmp->list != list_tmp;
+                work_tmp = rt_list_entry(work_tmp->list.next, struct rt_work, list))
         {
             if ((work_tmp->timeout_tick - work->timeout_tick) < RT_TICK_MAX / 2)
             {