Skip to content

Commit 12c5918

Browse files
committed
feat(runtime): check is_empty before pop
1 parent e1d3336 commit 12c5918

File tree

2 files changed

+12
-8
lines changed
  • compio-driver/src/iour
  • compio-runtime/src/runtime

2 files changed

+12
-8
lines changed

compio-driver/src/iour/mod.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,11 @@ impl Driver {
135135
}
136136

137137
fn poll_entries(&mut self, entries: &mut impl Extend<Entry>) -> bool {
138-
while let Some(entry) = self.pool_completed.pop() {
139-
entries.extend(Some(entry));
138+
// Cheaper than pop.
139+
if !self.pool_completed.is_empty() {
140+
while let Some(entry) = self.pool_completed.pop() {
141+
entries.extend(Some(entry));
142+
}
140143
}
141144

142145
let mut cqueue = self.inner.completion();

compio-runtime/src/runtime/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,13 @@ impl RuntimeInner {
8383
if let Some(task) = next_task {
8484
task.run();
8585
}
86-
let next_task = self.sync_runnables.pop();
87-
let has_sync_task = next_task.is_some();
88-
if let Some(task) = next_task {
89-
task.run();
90-
}
91-
if !has_local_task && !has_sync_task {
86+
// Cheaper than pop.
87+
let has_sync_task = !self.sync_runnables.is_empty();
88+
if has_sync_task {
89+
if let Some(task) = self.sync_runnables.pop() {
90+
task.run();
91+
}
92+
} else if !has_local_task {
9293
break;
9394
}
9495
}

0 commit comments

Comments
 (0)