atomic_queue/
atomic_queue.rs1use rustpool::AtomicQueue;
3use rustpool::RPQueue;
4
5fn main() {
6 let q = AtomicQueue::<isize>::new(3, || 0);
8
9 println!("simple blocking queue size {}", q.capacity());
10
11 let v1 = q.take().unwrap();
13
14 println!("first element is {}", v1);
15
16 let v2 = q.take().unwrap();
18 let v3 = q.take().unwrap();
19
20 println!("items in the queue {}", q.available());
22
23 let empty = q.take_wait(std::time::Duration::from_secs(1));
25
26 assert_eq!(None, empty);
27
28 q.offer(v1);
30 q.offer(v2);
31 q.offer(v3);
32
33 println!("items in the queue {}", q.available());
35
36 let new_value: isize = 1;
37
38 q.offer(&new_value);
40
41 println!("items in the queue {}", q.available());
43}