diff options
Diffstat (limited to 'src/e_core_selector.rs')
-rw-r--r-- | src/e_core_selector.rs | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/src/e_core_selector.rs b/src/e_core_selector.rs deleted file mode 100644 index 48bfa8c..0000000 --- a/src/e_core_selector.rs +++ /dev/null @@ -1,31 +0,0 @@ -use std::ops::Range; - -pub trait ECoreSelector { - fn next_core(&mut self, previous_cpu: i32) -> i32; -} - -pub struct RoundRobinSelector { - offset: u32, - num_cores: u32, - last_used: u32, -} - -impl RoundRobinSelector { - pub fn new(e_cores: &Range<i32>) -> RoundRobinSelector { - Self { - offset: e_cores.start as u32, - num_cores: e_cores.len() as u32, - last_used: 0, - } - } -} - -impl ECoreSelector for RoundRobinSelector { - fn next_core(&mut self, previous_cpu: i32) -> i32 { - if (self.offset..(self.offset + self.num_cores)).contains(&(previous_cpu as u32)) { - return previous_cpu; - } - self.last_used += 1; - (self.offset + (self.last_used % self.num_cores.max(1))) as i32 - } -} |