rasi_default/token.rs
1use mio::Token;
2use std::sync::atomic::{AtomicUsize, Ordering};
3
4/// This trait defines a method for sequential generation of [`token`](Token)s
5///
6/// **Note**: This type is only available on platforms that support atomic loads and stores of usize
7pub trait TokenSequence {
8 /// generate next file description handle.
9 fn next() -> Token {
10 static NEXT: AtomicUsize = AtomicUsize::new(0);
11
12 Token(NEXT.fetch_add(1, Ordering::SeqCst))
13 }
14}
15
16impl TokenSequence for Token {}