2 use crate::sync::mpsc::channel;
9 let queue = Queue::with_additions(0, (), ());
12 assert_eq!(queue.pop(), Some(1));
13 assert_eq!(queue.pop(), Some(2));
14 assert_eq!(queue.pop(), None);
17 assert_eq!(queue.pop(), Some(3));
18 assert_eq!(queue.pop(), Some(4));
19 assert_eq!(queue.pop(), None);
26 let queue = Queue::with_additions(0, (), ());
29 // Ensure the borrowchecker works
32 assert_eq!(&*vec, &[1]);
34 None => unreachable!(),
39 assert_eq!(&*vec, &[1]);
41 None => unreachable!(),
49 let q: Queue<Box<_>> = Queue::with_additions(0, (), ());
58 let q = Queue::with_additions(0, (), ());
61 assert_eq!(q.pop(), Some(1));
62 assert_eq!(q.pop(), Some(2));
63 assert_eq!(q.pop(), None);
66 assert_eq!(q.pop(), Some(3));
67 assert_eq!(q.pop(), Some(4));
68 assert_eq!(q.pop(), None);
79 unsafe fn stress_bound(bound: usize) {
80 let count = if cfg!(miri) { 1000 } else { 100000 };
81 let q = Arc::new(Queue::with_additions(bound, (), ()));
83 let (tx, rx) = channel();
85 let _t = thread::spawn(move || {