Prechádzať zdrojové kódy

Don't notify task if ready

kidkool850@gmail.com 1 rok pred
rodič
commit
ed2ce6e039
1 zmenil súbory, kde vykonal 6 pridanie a 5 odobranie
  1. 6 5
      packages/core/src/scheduler/task.rs

+ 6 - 5
packages/core/src/scheduler/task.rs

@@ -49,13 +49,14 @@ impl Scheduler {
         };
 
         let mut cx = std::task::Context::from_waker(&task.waker);
-        let _ = task.task.borrow_mut().as_mut().poll(&mut cx);
 
-        entry.insert(task);
+        if !task.task.borrow_mut().as_mut().poll(&mut cx).is_ready() {
+            self.sender
+                .unbounded_send(SchedulerMsg::TaskNotified(task_id))
+                .expect("Scheduler should exist");
+        }
 
-        self.sender
-            .unbounded_send(SchedulerMsg::TaskNotified(task_id))
-            .expect("Scheduler should exist");
+        entry.insert(task);
 
         task_id
     }