]>
git.proxmox.com Git - rustc.git/blob - library/std/src/sync/mpsc/spsc_queue/tests.rs
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 q
= Arc
::new(Queue
::with_additions(bound
, (), ()));
82 let (tx
, rx
) = channel();
84 let _t
= thread
::spawn(move || {