Sets the timer state.
(task: &TaskInner, state: TimerState)
| 441 | |
| 442 | /// Sets the timer state. |
| 443 | pub fn set_timer_state(task: &TaskInner, state: TimerState) { |
| 444 | let Some(thr) = task.try_as_thread() else { |
| 445 | return; |
| 446 | }; |
| 447 | let Ok(mut time) = thr.time.try_borrow_mut() else { |
| 448 | // reentrant borrow, likely IRQ |
| 449 | return; |
| 450 | }; |
| 451 | time.poll(|signo| { |
| 452 | send_signal_thread_inner(task, thr, SignalInfo::new_kernel(signo)); |
| 453 | }); |
| 454 | time.set_state(state); |
| 455 | } |
| 456 | |
| 457 | fn send_signal_thread_inner(task: &TaskInner, thr: &Thread, sig: SignalInfo) { |
| 458 | if thr.signal.send_signal(sig) { |
no test coverage detected