devela/work/process/thread/sleep/
spin.rs
1#![allow(unused)]
7
8use crate::{Duration};
9
10#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
12pub struct SleepSpin {
13 backoff: SpinStrategy,
14}
15
16impl SleepSpin {
17 pub const fn new() -> Self {
19 todo![]
20 }
21
22 pub fn sleep_until<F: Fn() -> bool>(&mut self, timeout: Duration, condition: F) -> bool {
24 todo!{}
25 }
26
27 pub fn sleep_for(&mut self, duration: Duration) {
29 todo![]
30 }
31}
32
33#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
35pub enum SpinStrategy {
36 #[default]
38 Immediate,
39
40 Yielding,
42
43 ExpBackoff,
45}