Browse Source

使can_yield成员的赋值更好理解

shaojinchun 5 years ago
parent
commit
9a38bba168
3 changed files with 8 additions and 8 deletions
  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 */
         /* change to initialized tick */
         thread->remaining_tick = thread->init_tick;
         thread->remaining_tick = thread->init_tick;
 
 
-        thread->can_yield = 1;
+        thread->can_yield = RT_TRUE;
 
 
         /* yield */
         /* yield */
         rt_thread_yield();
         rt_thread_yield();

+ 6 - 6
src/scheduler.c

@@ -344,13 +344,13 @@ void rt_schedule(void)
                 {
                 {
                     to_thread = current_thread;
                     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;
                     to_thread = current_thread;
                 }
                 }
                 else
                 else
                 {
                 {
-                    current_thread->can_yield = 0;
+                    current_thread->can_yield = RT_FALSE;
                     rt_schedule_insert_thread(current_thread);
                     rt_schedule_insert_thread(current_thread);
                 }
                 }
             }
             }
@@ -440,13 +440,13 @@ void rt_schedule(void)
                 {
                 {
                     to_thread = rt_current_thread;
                     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;
                     to_thread = rt_current_thread;
                 }
                 }
                 else
                 else
                 {
                 {
-                    rt_current_thread->can_yield = 0;
+                    rt_current_thread->can_yield = RT_FALSE;
                     need_insert_from_thread = 1;
                     need_insert_from_thread = 1;
                 }
                 }
             }
             }
@@ -588,13 +588,13 @@ void rt_scheduler_do_irq_switch(void *context)
                 {
                 {
                     to_thread = current_thread;
                     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;
                     to_thread = current_thread;
                 }
                 }
                 else
                 else
                 {
                 {
-                    current_thread->can_yield = 0;
+                    current_thread->can_yield = RT_FALSE;
                     rt_schedule_insert_thread(current_thread);
                     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 */
     /* tick init */
     thread->init_tick      = tick;
     thread->init_tick      = tick;
     thread->remaining_tick = tick;
     thread->remaining_tick = tick;
-    thread->can_yield      = 0;
+    thread->can_yield      = RT_FALSE;
 
 
     /* error and flags */
     /* error and flags */
     thread->error = RT_EOK;
     thread->error = RT_EOK;