1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
use std::sync::atomic::{AtomicBool, Ordering};

pub struct KillChip(AtomicBool);

impl KillChip {
	pub const fn new() -> Self {
		KillChip(AtomicBool::new(false))
	}

	pub fn default() -> Self {
		KillChip(AtomicBool::new(false))
	}

	pub fn activate(&self) -> bool {
		self.0.swap(true, Ordering::SeqCst)
	}

	pub fn is_activated(&self) -> bool {
		self.0.load(Ordering::SeqCst)
	}
}