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