Skip to content

Commit 99d163d

Browse files
committed
perf(init): Stop polling for events
Rather read events in a blocking fashion. This way we are not wasting on useless CPU cycles
1 parent 19213f9 commit 99d163d

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

src/core/init.rs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -336,28 +336,24 @@ fn event_reader(
336336
}
337337
}
338338

339-
if event::poll(std::time::Duration::from_millis(100))
340-
.map_err(|e| MinusError::HandleEvent(e.into()))?
341-
{
342-
let ev = event::read().map_err(|e| MinusError::HandleEvent(e.into()))?;
343-
let mut guard = ps.lock();
344-
// Get the events
345-
let input = guard.input_classifier.classify_input(ev, &guard);
346-
if let Some(iev) = input {
347-
if let InputEvent::Number(n) = iev {
348-
guard.prefix_num.push(n);
349-
guard.format_prompt();
350-
} else if !guard.prefix_num.is_empty() {
351-
guard.prefix_num.clear();
352-
guard.format_prompt();
353-
}
354-
if let Err(TrySendError::Disconnected(_)) = evtx.try_send(Command::UserInput(iev)) {
355-
break;
356-
}
339+
let ev = event::read().map_err(|e| MinusError::HandleEvent(e.into()))?;
340+
let mut guard = ps.lock();
341+
// Get the events
342+
let input = guard.input_classifier.classify_input(ev, &guard);
343+
if let Some(iev) = input {
344+
if let InputEvent::Number(n) = iev {
345+
guard.prefix_num.push(n);
346+
guard.format_prompt();
357347
} else if !guard.prefix_num.is_empty() {
358348
guard.prefix_num.clear();
359349
guard.format_prompt();
360350
}
351+
if let Err(TrySendError::Disconnected(_)) = evtx.try_send(Command::UserInput(iev)) {
352+
break;
353+
}
354+
} else if !guard.prefix_num.is_empty() {
355+
guard.prefix_num.clear();
356+
guard.format_prompt();
361357
}
362358
}
363359
Result::<(), MinusError>::Ok(())

0 commit comments

Comments
 (0)