浏览代码

使can_yield成员的赋值更好理解

shaojinchun 5 年之前
父节点
当前提交
9a38bba168
共有 3 个文件被更改,包括 8 次插入8 次删除
  1. 1 1
      src/clock.c
  2. 6 6
      src/scheduler.c
  3. 1 1
      src/thread.c

+ 1 - 1
src/clock.c

@@ -89,7 +89,7 @@ void rt_tick_increase(void)
         /* change to initialized tick */
         thread->remaining_tick = thread->init_tick;
 
-        thread->can_yield = 1;
+        thread->can_yield = RT_TRUE;
 
         /* yield */
         rt_thread_yield();

+ 6 - 6
src/scheduler.c

@@ -344,13 +344,13 @@ void rt_schedule(void)
                 {
                     to_thread = current_thread;
                 }
-                else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == 0)
+                else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == RT_FALSE)
                 {
                     to_thread = current_thread;
                 }
                 else
                 {
-                    current_thread->can_yield = 0;
+                    current_thread->can_yield = RT_FALSE;
                     rt_schedule_insert_thread(current_thread);
                 }
             }
@@ -440,13 +440,13 @@ void rt_schedule(void)
                 {
                     to_thread = rt_current_thread;
                 }
-                else if (rt_current_thread->current_priority == highest_ready_priority && rt_current_thread->can_yield == 0)
+                else if (rt_current_thread->current_priority == highest_ready_priority && rt_current_thread->can_yield == RT_FALSE)
                 {
                     to_thread = rt_current_thread;
                 }
                 else
                 {
-                    rt_current_thread->can_yield = 0;
+                    rt_current_thread->can_yield = RT_FALSE;
                     need_insert_from_thread = 1;
                 }
             }
@@ -588,13 +588,13 @@ void rt_scheduler_do_irq_switch(void *context)
                 {
                     to_thread = current_thread;
                 }
-                else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == 0)
+                else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == RT_FALSE)
                 {
                     to_thread = current_thread;
                 }
                 else
                 {
-                    current_thread->can_yield = 0;
+                    current_thread->can_yield = RT_FALSE;
                     rt_schedule_insert_thread(current_thread);
                 }
             }

+ 1 - 1
src/thread.c

@@ -159,7 +159,7 @@ static rt_err_t _rt_thread_init(struct rt_thread *thread,
     /* tick init */
     thread->init_tick      = tick;
     thread->remaining_tick = tick;
-    thread->can_yield      = 0;
+    thread->can_yield      = RT_FALSE;
 
     /* error and flags */
     thread->error = RT_EOK;