1mod atomic_time;
8mod condvar;
9mod interruptible_event;
10mod lock_dep_mutex;
11mod lock_ordering;
12mod lock_traits;
13mod locks;
14mod port_event;
15mod rw_seq_lock;
16mod thread_affinity;
17
18pub use atomic_time::*;
19pub use condvar::*;
20pub use interruptible_event::*;
21pub use lock_dep_mutex::*;
22pub use lock_ordering::*;
23pub use lock_ordering_macro::*;
24pub use lock_traits::*;
25pub use locks::*;
26pub use port_event::*;
27pub use rw_seq_lock::*;
28pub use thread_affinity::*;
29
30extern crate self as starnix_sync;
33
34pub(crate) const STACK_CLEAN_DELAY: zx::MonotonicDuration = zx::MonotonicDuration::from_seconds(5);
37
38#[inline]
42pub(crate) fn initial_clean_deadline(
43 deadline: zx::MonotonicInstant,
44 clean_delay: zx::MonotonicDuration,
45) -> zx::MonotonicInstant {
46 if deadline > zx::MonotonicInstant::ZERO {
49 std::cmp::min(deadline, zx::MonotonicInstant::after(clean_delay))
50 } else {
51 deadline
52 }
53}