1pub struct MkFence {
5 signaled: bool,
6}
7
8impl MkFence {
9 pub fn new() -> Self {
11 Self { signaled: false }
12 }
13
14 pub fn signaled() -> Self {
16 Self { signaled: true }
17 }
18
19 pub fn is_signaled(&self) -> bool {
21 self.signaled
22 }
23
24 pub fn signal(&mut self) {
26 self.signaled = true;
27 }
28
29 pub fn reset(&mut self) {
31 self.signaled = false;
32 }
33
34 pub fn wait(&self) {
36 while !self.signaled {
38 std::hint::spin_loop();
39 }
40 }
41}
42
43impl Default for MkFence {
44 fn default() -> Self {
45 Self::new()
46 }
47}