Coverage Report

Created: 2021-01-22 16:54

crossbeam-channel/src/flavors/zero.rs
Line
Count
Source
1
//! Zero-capacity channel.
2
//!
3
//! This kind of channel is also known as *rendezvous* channel.
4
5
use std::cell::UnsafeCell;
6
use std::marker::PhantomData;
7
use std::sync::atomic::{AtomicBool, Ordering};
8
use std::time::Instant;
9
10
use crossbeam_utils::Backoff;
11
12
use crate::context::Context;
13
use crate::err::{RecvTimeoutError, SendTimeoutError, TryRecvError, TrySendError};
14
use crate::select::{Operation, SelectHandle, Selected, Token};
15
use crate::utils::Spinlock;
16
use crate::waker::Waker;
17
18
/// A pointer to a packet.
19
pub(crate) type ZeroToken = usize;
20
21
/// A slot for passing one message from a sender to a receiver.
22
struct Packet<T> {
23
    /// Equals `true` if the packet is allocated on the stack.
24
    on_stack: bool,
25
26
    /// Equals `true` once the packet is ready for reading or writing.
27
    ready: AtomicBool,
28
29
    /// The message.
30
    msg: UnsafeCell<Option<T>>,
31
}
32
33
impl<T> Packet<T> {
34
    /// Creates an empty packet on the stack.
35
1.81M
    fn empty_on_stack() -> Packet<T> {
36
1.81M
        Packet {
37
1.81M
            on_stack: true,
38
1.81M
            ready: AtomicBool::new(false),
39
1.81M
            msg: UnsafeCell::new(None),
40
1.81M
        }
41
1.81M
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::empty_on_stack
Line
Count
Source
35
111k
    fn empty_on_stack() -> Packet<T> {
36
111k
        Packet {
37
111k
            on_stack: true,
38
111k
            ready: AtomicBool::new(false),
39
111k
            msg: UnsafeCell::new(None),
40
111k
        }
41
111k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_stack
Line
Count
Source
35
1.00k
    fn empty_on_stack() -> Packet<T> {
36
1.00k
        Packet {
37
1.00k
            on_stack: true,
38
1.00k
            ready: AtomicBool::new(false),
39
1.00k
            msg: UnsafeCell::new(None),
40
1.00k
        }
41
1.00k
    }
<crossbeam_channel::flavors::zero::Packet<zero::drops::DropCounter>>::empty_on_stack
Line
Count
Source
35
77.3k
    fn empty_on_stack() -> Packet<T> {
36
77.3k
        Packet {
37
77.3k
            on_stack: true,
38
77.3k
            ready: AtomicBool::new(false),
39
77.3k
            msg: UnsafeCell::new(None),
40
77.3k
        }
41
77.3k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::empty_on_stack
Line
Count
Source
35
493
    fn empty_on_stack() -> Packet<T> {
36
493
        Packet {
37
493
            on_stack: true,
38
493
            ready: AtomicBool::new(false),
39
493
            msg: UnsafeCell::new(None),
40
493
        }
41
493
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_stack
Line
Count
Source
35
7
    fn empty_on_stack() -> Packet<T> {
36
7
        Packet {
37
7
            on_stack: true,
38
7
            ready: AtomicBool::new(false),
39
7
            msg: UnsafeCell::new(None),
40
7
        }
41
7
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_stack
Line
Count
Source
35
767k
    fn empty_on_stack() -> Packet<T> {
36
767k
        Packet {
37
767k
            on_stack: true,
38
767k
            ready: AtomicBool::new(false),
39
767k
            msg: UnsafeCell::new(None),
40
767k
        }
41
767k
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::empty_on_stack
Line
Count
Source
35
39.6k
    fn empty_on_stack() -> Packet<T> {
36
39.6k
        Packet {
37
39.6k
            on_stack: true,
38
39.6k
            ready: AtomicBool::new(false),
39
39.6k
            msg: UnsafeCell::new(None),
40
39.6k
        }
41
39.6k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_stack
Line
Count
Source
35
1
    fn empty_on_stack() -> Packet<T> {
36
1
        Packet {
37
1
            on_stack: true,
38
1
            ready: AtomicBool::new(false),
39
1
            msg: UnsafeCell::new(None),
40
1
        }
41
1
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<i32>>>::empty_on_stack
Line
Count
Source
35
7
    fn empty_on_stack() -> Packet<T> {
36
7
        Packet {
37
7
            on_stack: true,
38
7
            ready: AtomicBool::new(false),
39
7
            msg: UnsafeCell::new(None),
40
7
        }
41
7
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_stack
Line
Count
Source
35
14.4k
    fn empty_on_stack() -> Packet<T> {
36
14.4k
        Packet {
37
14.4k
            on_stack: true,
38
14.4k
            ready: AtomicBool::new(false),
39
14.4k
            msg: UnsafeCell::new(None),
40
14.4k
        }
41
14.4k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_stack
Line
Count
Source
35
5
    fn empty_on_stack() -> Packet<T> {
36
5
        Packet {
37
5
            on_stack: true,
38
5
            ready: AtomicBool::new(false),
39
5
            msg: UnsafeCell::new(None),
40
5
        }
41
5
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_stack
Line
Count
Source
35
23.4k
    fn empty_on_stack() -> Packet<T> {
36
23.4k
        Packet {
37
23.4k
            on_stack: true,
38
23.4k
            ready: AtomicBool::new(false),
39
23.4k
            msg: UnsafeCell::new(None),
40
23.4k
        }
41
23.4k
    }
<crossbeam_channel::flavors::zero::Packet<i64>>::empty_on_stack
Line
Count
Source
35
1
    fn empty_on_stack() -> Packet<T> {
36
1
        Packet {
37
1
            on_stack: true,
38
1
            ready: AtomicBool::new(false),
39
1
            msg: UnsafeCell::new(None),
40
1
        }
41
1
    }
<crossbeam_channel::flavors::zero::Packet<bool>>::empty_on_stack
Line
Count
Source
35
124
    fn empty_on_stack() -> Packet<T> {
36
124
        Packet {
37
124
            on_stack: true,
38
124
            ready: AtomicBool::new(false),
39
124
            msg: UnsafeCell::new(None),
40
124
        }
41
124
    }
<crossbeam_channel::flavors::zero::Packet<u8>>::empty_on_stack
Line
Count
Source
35
9.50k
    fn empty_on_stack() -> Packet<T> {
36
9.50k
        Packet {
37
9.50k
            on_stack: true,
38
9.50k
            ready: AtomicBool::new(false),
39
9.50k
            msg: UnsafeCell::new(None),
40
9.50k
        }
41
9.50k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::string::String>>::empty_on_stack
Line
Count
Source
35
1
    fn empty_on_stack() -> Packet<T> {
36
1
        Packet {
37
1
            on_stack: true,
38
1
            ready: AtomicBool::new(false),
39
1
            msg: UnsafeCell::new(None),
40
1
        }
41
1
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::empty_on_stack
Line
Count
Source
35
29.8k
    fn empty_on_stack() -> Packet<T> {
36
29.8k
        Packet {
37
29.8k
            on_stack: true,
38
29.8k
            ready: AtomicBool::new(false),
39
29.8k
            msg: UnsafeCell::new(None),
40
29.8k
        }
41
29.8k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::empty_on_stack
Line
Count
Source
35
832
    fn empty_on_stack() -> Packet<T> {
36
832
        Packet {
37
832
            on_stack: true,
38
832
            ready: AtomicBool::new(false),
39
832
            msg: UnsafeCell::new(None),
40
832
        }
41
832
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_stack
Line
Count
Source
35
7
    fn empty_on_stack() -> Packet<T> {
36
7
        Packet {
37
7
            on_stack: true,
38
7
            ready: AtomicBool::new(false),
39
7
            msg: UnsafeCell::new(None),
40
7
        }
41
7
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_stack
Line
Count
Source
35
689k
    fn empty_on_stack() -> Packet<T> {
36
689k
        Packet {
37
689k
            on_stack: true,
38
689k
            ready: AtomicBool::new(false),
39
689k
            msg: UnsafeCell::new(None),
40
689k
        }
41
689k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_stack
Line
Count
Source
35
19.9k
    fn empty_on_stack() -> Packet<T> {
36
19.9k
        Packet {
37
19.9k
            on_stack: true,
38
19.9k
            ready: AtomicBool::new(false),
39
19.9k
            msg: UnsafeCell::new(None),
40
19.9k
        }
41
19.9k
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::empty_on_stack
Line
Count
Source
35
29.8k
    fn empty_on_stack() -> Packet<T> {
36
29.8k
        Packet {
37
29.8k
            on_stack: true,
38
29.8k
            ready: AtomicBool::new(false),
39
29.8k
            msg: UnsafeCell::new(None),
40
29.8k
        }
41
29.8k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_stack
Line
Count
Source
35
1
    fn empty_on_stack() -> Packet<T> {
36
1
        Packet {
37
1
            on_stack: true,
38
1
            ready: AtomicBool::new(false),
39
1
            msg: UnsafeCell::new(None),
40
1
        }
41
1
    }
42
43
    /// Creates an empty packet on the heap.
44
8.55M
    fn empty_on_heap() -> Box<Packet<T>> {
45
8.55M
        Box::new(Packet {
46
8.55M
            on_stack: false,
47
8.55M
            ready: AtomicBool::new(false),
48
8.55M
            msg: UnsafeCell::new(None),
49
8.55M
        })
50
8.55M
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_heap
Line
Count
Source
44
54.5k
    fn empty_on_heap() -> Box<Packet<T>> {
45
54.5k
        Box::new(Packet {
46
54.5k
            on_stack: false,
47
54.5k
            ready: AtomicBool::new(false),
48
54.5k
            msg: UnsafeCell::new(None),
49
54.5k
        })
50
54.5k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::empty_on_heap
Line
Count
Source
44
1.66k
    fn empty_on_heap() -> Box<Packet<T>> {
45
1.66k
        Box::new(Packet {
46
1.66k
            on_stack: false,
47
1.66k
            ready: AtomicBool::new(false),
48
1.66k
            msg: UnsafeCell::new(None),
49
1.66k
        })
50
1.66k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_heap
Line
Count
Source
44
3.84M
    fn empty_on_heap() -> Box<Packet<T>> {
45
3.84M
        Box::new(Packet {
46
3.84M
            on_stack: false,
47
3.84M
            ready: AtomicBool::new(false),
48
3.84M
            msg: UnsafeCell::new(None),
49
3.84M
        })
50
3.84M
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_heap
Line
Count
Source
44
1.31M
    fn empty_on_heap() -> Box<Packet<T>> {
45
1.31M
        Box::new(Packet {
46
1.31M
            on_stack: false,
47
1.31M
            ready: AtomicBool::new(false),
48
1.31M
            msg: UnsafeCell::new(None),
49
1.31M
        })
50
1.31M
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::empty_on_heap
Line
Count
Source
44
4.14k
    fn empty_on_heap() -> Box<Packet<T>> {
45
4.14k
        Box::new(Packet {
46
4.14k
            on_stack: false,
47
4.14k
            ready: AtomicBool::new(false),
48
4.14k
            msg: UnsafeCell::new(None),
49
4.14k
        })
50
4.14k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_heap
Line
Count
Source
44
1
    fn empty_on_heap() -> Box<Packet<T>> {
45
1
        Box::new(Packet {
46
1
            on_stack: false,
47
1
            ready: AtomicBool::new(false),
48
1
            msg: UnsafeCell::new(None),
49
1
        })
50
1
    }
<crossbeam_channel::flavors::zero::Packet<i64>>::empty_on_heap
Line
Count
Source
44
1
    fn empty_on_heap() -> Box<Packet<T>> {
45
1
        Box::new(Packet {
46
1
            on_stack: false,
47
1
            ready: AtomicBool::new(false),
48
1
            msg: UnsafeCell::new(None),
49
1
        })
50
1
    }
<crossbeam_channel::flavors::zero::Packet<bool>>::empty_on_heap
Line
Count
Source
44
1
    fn empty_on_heap() -> Box<Packet<T>> {
45
1
        Box::new(Packet {
46
1
            on_stack: false,
47
1
            ready: AtomicBool::new(false),
48
1
            msg: UnsafeCell::new(None),
49
1
        })
50
1
    }
<crossbeam_channel::flavors::zero::Packet<u8>>::empty_on_heap
Line
Count
Source
44
1.02k
    fn empty_on_heap() -> Box<Packet<T>> {
45
1.02k
        Box::new(Packet {
46
1.02k
            on_stack: false,
47
1.02k
            ready: AtomicBool::new(false),
48
1.02k
            msg: UnsafeCell::new(None),
49
1.02k
        })
50
1.02k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::string::String>>::empty_on_heap
Line
Count
Source
44
1
    fn empty_on_heap() -> Box<Packet<T>> {
45
1
        Box::new(Packet {
46
1
            on_stack: false,
47
1
            ready: AtomicBool::new(false),
48
1
            msg: UnsafeCell::new(None),
49
1
        })
50
1
    }
<crossbeam_channel::flavors::zero::Packet<u32>>::empty_on_heap
Line
Count
Source
44
2
    fn empty_on_heap() -> Box<Packet<T>> {
45
2
        Box::new(Packet {
46
2
            on_stack: false,
47
2
            ready: AtomicBool::new(false),
48
2
            msg: UnsafeCell::new(None),
49
2
        })
50
2
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_heap
Line
Count
Source
44
56.9k
    fn empty_on_heap() -> Box<Packet<T>> {
45
56.9k
        Box::new(Packet {
46
56.9k
            on_stack: false,
47
56.9k
            ready: AtomicBool::new(false),
48
56.9k
            msg: UnsafeCell::new(None),
49
56.9k
        })
50
56.9k
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::empty_on_heap
Line
Count
Source
44
4.36k
    fn empty_on_heap() -> Box<Packet<T>> {
45
4.36k
        Box::new(Packet {
46
4.36k
            on_stack: false,
47
4.36k
            ready: AtomicBool::new(false),
48
4.36k
            msg: UnsafeCell::new(None),
49
4.36k
        })
50
4.36k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_heap
Line
Count
Source
44
1.94k
    fn empty_on_heap() -> Box<Packet<T>> {
45
1.94k
        Box::new(Packet {
46
1.94k
            on_stack: false,
47
1.94k
            ready: AtomicBool::new(false),
48
1.94k
            msg: UnsafeCell::new(None),
49
1.94k
        })
50
1.94k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::empty_on_heap
Line
Count
Source
44
493
    fn empty_on_heap() -> Box<Packet<T>> {
45
493
        Box::new(Packet {
46
493
            on_stack: false,
47
493
            ready: AtomicBool::new(false),
48
493
            msg: UnsafeCell::new(None),
49
493
        })
50
493
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_heap
Line
Count
Source
44
3.25M
    fn empty_on_heap() -> Box<Packet<T>> {
45
3.25M
        Box::new(Packet {
46
3.25M
            on_stack: false,
47
3.25M
            ready: AtomicBool::new(false),
48
3.25M
            msg: UnsafeCell::new(None),
49
3.25M
        })
50
3.25M
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::empty_on_heap
Line
Count
Source
44
2
    fn empty_on_heap() -> Box<Packet<T>> {
45
2
        Box::new(Packet {
46
2
            on_stack: false,
47
2
            ready: AtomicBool::new(false),
48
2
            msg: UnsafeCell::new(None),
49
2
        })
50
2
    }
<crossbeam_channel::flavors::zero::Packet<()>>::empty_on_heap
Line
Count
Source
44
16.2k
    fn empty_on_heap() -> Box<Packet<T>> {
45
16.2k
        Box::new(Packet {
46
16.2k
            on_stack: false,
47
16.2k
            ready: AtomicBool::new(false),
48
16.2k
            msg: UnsafeCell::new(None),
49
16.2k
        })
50
16.2k
    }
51
52
    /// Creates a packet on the stack, containing a message.
53
409k
    fn message_on_stack(msg: T) -> Packet<T> {
54
409k
        Packet {
55
409k
            on_stack: true,
56
409k
            ready: AtomicBool::new(false),
57
409k
            msg: UnsafeCell::new(Some(msg)),
58
409k
        }
59
409k
    }
<crossbeam_channel::flavors::zero::Packet<zero::drops::DropCounter>>::message_on_stack
Line
Count
Source
53
77.7k
    fn message_on_stack(msg: T) -> Packet<T> {
54
77.7k
        Packet {
55
77.7k
            on_stack: true,
56
77.7k
            ready: AtomicBool::new(false),
57
77.7k
            msg: UnsafeCell::new(Some(msg)),
58
77.7k
        }
59
77.7k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::message_on_stack
Line
Count
Source
53
1
    fn message_on_stack(msg: T) -> Packet<T> {
54
1
        Packet {
55
1
            on_stack: true,
56
1
            ready: AtomicBool::new(false),
57
1
            msg: UnsafeCell::new(Some(msg)),
58
1
        }
59
1
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::message_on_stack
Line
Count
Source
53
7
    fn message_on_stack(msg: T) -> Packet<T> {
54
7
        Packet {
55
7
            on_stack: true,
56
7
            ready: AtomicBool::new(false),
57
7
            msg: UnsafeCell::new(Some(msg)),
58
7
        }
59
7
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::message_on_stack
Line
Count
Source
53
113k
    fn message_on_stack(msg: T) -> Packet<T> {
54
113k
        Packet {
55
113k
            on_stack: true,
56
113k
            ready: AtomicBool::new(false),
57
113k
            msg: UnsafeCell::new(Some(msg)),
58
113k
        }
59
113k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::message_on_stack
Line
Count
Source
53
507
    fn message_on_stack(msg: T) -> Packet<T> {
54
507
        Packet {
55
507
            on_stack: true,
56
507
            ready: AtomicBool::new(false),
57
507
            msg: UnsafeCell::new(Some(msg)),
58
507
        }
59
507
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::message_on_stack
Line
Count
Source
53
19.5k
    fn message_on_stack(msg: T) -> Packet<T> {
54
19.5k
        Packet {
55
19.5k
            on_stack: true,
56
19.5k
            ready: AtomicBool::new(false),
57
19.5k
            msg: UnsafeCell::new(Some(msg)),
58
19.5k
        }
59
19.5k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::message_on_stack
Line
Count
Source
53
31.1k
    fn message_on_stack(msg: T) -> Packet<T> {
54
31.1k
        Packet {
55
31.1k
            on_stack: true,
56
31.1k
            ready: AtomicBool::new(false),
57
31.1k
            msg: UnsafeCell::new(Some(msg)),
58
31.1k
        }
59
31.1k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::message_on_stack
Line
Count
Source
53
100
    fn message_on_stack(msg: T) -> Packet<T> {
54
100
        Packet {
55
100
            on_stack: true,
56
100
            ready: AtomicBool::new(false),
57
100
            msg: UnsafeCell::new(Some(msg)),
58
100
        }
59
100
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::message_on_stack
Line
Count
Source
53
20.7k
    fn message_on_stack(msg: T) -> Packet<T> {
54
20.7k
        Packet {
55
20.7k
            on_stack: true,
56
20.7k
            ready: AtomicBool::new(false),
57
20.7k
            msg: UnsafeCell::new(Some(msg)),
58
20.7k
        }
59
20.7k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<i32>>>::message_on_stack
Line
Count
Source
53
5
    fn message_on_stack(msg: T) -> Packet<T> {
54
5
        Packet {
55
5
            on_stack: true,
56
5
            ready: AtomicBool::new(false),
57
5
            msg: UnsafeCell::new(Some(msg)),
58
5
        }
59
5
    }
<crossbeam_channel::flavors::zero::Packet<bool>>::message_on_stack
Line
Count
Source
53
202
    fn message_on_stack(msg: T) -> Packet<T> {
54
202
        Packet {
55
202
            on_stack: true,
56
202
            ready: AtomicBool::new(false),
57
202
            msg: UnsafeCell::new(Some(msg)),
58
202
        }
59
202
    }
<crossbeam_channel::flavors::zero::Packet<i64>>::message_on_stack
Line
Count
Source
53
1
    fn message_on_stack(msg: T) -> Packet<T> {
54
1
        Packet {
55
1
            on_stack: true,
56
1
            ready: AtomicBool::new(false),
57
1
            msg: UnsafeCell::new(Some(msg)),
58
1
        }
59
1
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::message_on_stack
Line
Count
Source
53
17.8k
    fn message_on_stack(msg: T) -> Packet<T> {
54
17.8k
        Packet {
55
17.8k
            on_stack: true,
56
17.8k
            ready: AtomicBool::new(false),
57
17.8k
            msg: UnsafeCell::new(Some(msg)),
58
17.8k
        }
59
17.8k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::string::String>>::message_on_stack
Line
Count
Source
53
1
    fn message_on_stack(msg: T) -> Packet<T> {
54
1
        Packet {
55
1
            on_stack: true,
56
1
            ready: AtomicBool::new(false),
57
1
            msg: UnsafeCell::new(Some(msg)),
58
1
        }
59
1
    }
<crossbeam_channel::flavors::zero::Packet<()>>::message_on_stack
Line
Count
Source
53
108k
    fn message_on_stack(msg: T) -> Packet<T> {
54
108k
        Packet {
55
108k
            on_stack: true,
56
108k
            ready: AtomicBool::new(false),
57
108k
            msg: UnsafeCell::new(Some(msg)),
58
108k
        }
59
108k
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::message_on_stack
Line
Count
Source
53
9.94k
    fn message_on_stack(msg: T) -> Packet<T> {
54
9.94k
        Packet {
55
9.94k
            on_stack: true,
56
9.94k
            ready: AtomicBool::new(false),
57
9.94k
            msg: UnsafeCell::new(Some(msg)),
58
9.94k
        }
59
9.94k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::message_on_stack
Line
Count
Source
53
2
    fn message_on_stack(msg: T) -> Packet<T> {
54
2
        Packet {
55
2
            on_stack: true,
56
2
            ready: AtomicBool::new(false),
57
2
            msg: UnsafeCell::new(Some(msg)),
58
2
        }
59
2
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::message_on_stack
Line
Count
Source
53
10.0k
    fn message_on_stack(msg: T) -> Packet<T> {
54
10.0k
        Packet {
55
10.0k
            on_stack: true,
56
10.0k
            ready: AtomicBool::new(false),
57
10.0k
            msg: UnsafeCell::new(Some(msg)),
58
10.0k
        }
59
10.0k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::message_on_stack
Line
Count
Source
53
3
    fn message_on_stack(msg: T) -> Packet<T> {
54
3
        Packet {
55
3
            on_stack: true,
56
3
            ready: AtomicBool::new(false),
57
3
            msg: UnsafeCell::new(Some(msg)),
58
3
        }
59
3
    }
60
61
    /// Waits until the packet becomes ready for reading or writing.
62
2.25M
    fn wait_ready(&self) {
63
2.25M
        let backoff = Backoff::new();
64
3.99M
        while !self.ready.load(Ordering::Acquire) {
65
1.74M
            backoff.snooze();
66
1.74M
        }
67
2.25M
    }
<crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Line
Count
Source
62
20.9k
    fn wait_ready(&self) {
63
20.9k
        let backoff = Backoff::new();
64
309k
        while !self.ready.load(Ordering::Acquire) {
65
288k
            backoff.snooze();
66
288k
        }
67
20.9k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Line
Count
Source
62
11
    fn wait_ready(&self) {
63
11
        let backoff = Backoff::new();
64
11
        while !self.ready.load(Ordering::Acquire) {
65
0
            backoff.snooze();
66
0
        }
67
11
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Line
Count
Source
62
221k
    fn wait_ready(&self) {
63
221k
        let backoff = Backoff::new();
64
315k
        while !self.ready.load(Ordering::Acquire) {
65
94.3k
            backoff.snooze();
66
94.3k
        }
67
221k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::wait_ready
Line
Count
Source
62
1.00k
    fn wait_ready(&self) {
63
1.00k
        let backoff = Backoff::new();
64
1.51k
        while !self.ready.load(Ordering::Acquire) {
65
515
            backoff.snooze();
66
515
        }
67
1.00k
    }
<crossbeam_channel::flavors::zero::Packet<zero::drops::DropCounter>>::wait_ready
Line
Count
Source
62
155k
    fn wait_ready(&self) {
63
155k
        let backoff = Backoff::new();
64
228k
        while !self.ready.load(Ordering::Acquire) {
65
73.6k
            backoff.snooze();
66
73.6k
        }
67
155k
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Line
Count
Source
62
59.1k
    fn wait_ready(&self) {
63
59.1k
        let backoff = Backoff::new();
64
134k
        while !self.ready.load(Ordering::Acquire) {
65
75.4k
            backoff.snooze();
66
75.4k
        }
67
59.1k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::wait_ready
Line
Count
Source
62
1.00k
    fn wait_ready(&self) {
63
1.00k
        let backoff = Backoff::new();
64
4.87k
        while !self.ready.load(Ordering::Acquire) {
65
3.87k
            backoff.snooze();
66
3.87k
        }
67
1.00k
    }
<crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Line
Count
Source
62
785k
    fn wait_ready(&self) {
63
785k
        let backoff = Backoff::new();
64
1.25M
        while !self.ready.load(Ordering::Acquire) {
65
466k
            backoff.snooze();
66
466k
        }
67
785k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Line
Count
Source
62
24
    fn wait_ready(&self) {
63
24
        let backoff = Backoff::new();
64
135
        while !self.ready.load(Ordering::Acquire) {
65
111
            backoff.snooze();
66
111
        }
67
24
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<isize>>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Line
Count
Source
62
105
    fn wait_ready(&self) {
63
105
        let backoff = Backoff::new();
64
105
        while !self.ready.load(Ordering::Acquire) {
65
0
            backoff.snooze();
66
0
        }
67
105
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Line
Count
Source
62
34.2k
    fn wait_ready(&self) {
63
34.2k
        let backoff = Backoff::new();
64
48.5k
        while !self.ready.load(Ordering::Acquire) {
65
14.3k
            backoff.snooze();
66
14.3k
        }
67
34.2k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<i32>>>::wait_ready
Line
Count
Source
62
12
    fn wait_ready(&self) {
63
12
        let backoff = Backoff::new();
64
14
        while !self.ready.load(Ordering::Acquire) {
65
2
            backoff.snooze();
66
2
        }
67
12
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<array::drops::DropCounter>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<list::drops::DropCounter>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<u32>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Line
Count
Source
62
60.8k
    fn wait_ready(&self) {
63
60.8k
        let backoff = Backoff::new();
64
156k
        while !self.ready.load(Ordering::Acquire) {
65
95.7k
            backoff.snooze();
66
95.7k
        }
67
60.8k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<i64>>::wait_ready
Line
Count
Source
62
2
    fn wait_ready(&self) {
63
2
        let backoff = Backoff::new();
64
2
        while !self.ready.load(Ordering::Acquire) {
65
0
            backoff.snooze();
66
0
        }
67
2
    }
<crossbeam_channel::flavors::zero::Packet<bool>>::wait_ready
Line
Count
Source
62
326
    fn wait_ready(&self) {
63
326
        let backoff = Backoff::new();
64
384
        while !self.ready.load(Ordering::Acquire) {
65
58
            backoff.snooze();
66
58
        }
67
326
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any>>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<u8>>::wait_ready
Line
Count
Source
62
10.0k
    fn wait_ready(&self) {
63
10.0k
        let backoff = Backoff::new();
64
18.6k
        while !self.ready.load(Ordering::Acquire) {
65
8.63k
            backoff.snooze();
66
8.63k
        }
67
10.0k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::string::String>>::wait_ready
Line
Count
Source
62
2
    fn wait_ready(&self) {
63
2
        let backoff = Backoff::new();
64
2
        while !self.ready.load(Ordering::Acquire) {
65
0
            backoff.snooze();
66
0
        }
67
2
    }
<crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Line
Count
Source
62
784k
    fn wait_ready(&self) {
63
784k
        let backoff = Backoff::new();
64
1.26M
        while !self.ready.load(Ordering::Acquire) {
65
483k
            backoff.snooze();
66
483k
        }
67
784k
    }
<crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::wait_ready
Line
Count
Source
62
1.00k
    fn wait_ready(&self) {
63
1.00k
        let backoff = Backoff::new();
64
2.50k
        while !self.ready.load(Ordering::Acquire) {
65
1.50k
            backoff.snooze();
66
1.50k
        }
67
1.00k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Line
Count
Source
62
34
    fn wait_ready(&self) {
63
34
        let backoff = Backoff::new();
64
209
        while !self.ready.load(Ordering::Acquire) {
65
175
            backoff.snooze();
66
175
        }
67
34
    }
<crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Line
Count
Source
62
40.0k
    fn wait_ready(&self) {
63
40.0k
        let backoff = Backoff::new();
64
90.6k
        while !self.ready.load(Ordering::Acquire) {
65
50.6k
            backoff.snooze();
66
50.6k
        }
67
40.0k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<usize>>::wait_ready
Line
Count
Source
62
39.1k
    fn wait_ready(&self) {
63
39.1k
        let backoff = Backoff::new();
64
55.0k
        while !self.ready.load(Ordering::Acquire) {
65
15.9k
            backoff.snooze();
66
15.9k
        }
67
39.1k
    }
<crossbeam_channel::flavors::zero::Packet<i32>>::wait_ready
Line
Count
Source
62
4
    fn wait_ready(&self) {
63
4
        let backoff = Backoff::new();
64
16
        while !self.ready.load(Ordering::Acquire) {
65
12
            backoff.snooze();
66
12
        }
67
4
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Packet<std::time::Instant>>::wait_ready
<crossbeam_channel::flavors::zero::Packet<()>>::wait_ready
Line
Count
Source
62
36.2k
    fn wait_ready(&self) {
63
36.2k
        let backoff = Backoff::new();
64
109k
        while !self.ready.load(Ordering::Acquire) {
65
73.1k
            backoff.snooze();
66
73.1k
        }
67
36.2k
    }
68
}
69
70
/// Inner representation of a zero-capacity channel.
71
struct Inner {
72
    /// Senders waiting to pair up with a receive operation.
73
    senders: Waker,
74
75
    /// Receivers waiting to pair up with a send operation.
76
    receivers: Waker,
77
78
    /// Equals `true` when the channel is disconnected.
79
    is_disconnected: bool,
80
}
81
82
/// Zero-capacity channel.
83
pub(crate) struct Channel<T> {
84
    /// Inner representation of the channel.
85
    inner: Spinlock<Inner>,
86
87
    /// Indicates that dropping a `Channel<T>` may drop values of type `T`.
88
    _marker: PhantomData<T>,
89
}
90
91
impl<T> Channel<T> {
92
    /// Constructs a new zero-capacity channel.
93
4.80k
    pub(crate) fn new() -> Self {
94
4.80k
        Channel {
95
4.80k
            inner: Spinlock::new(Inner {
96
4.80k
                senders: Waker::new(),
97
4.80k
                receivers: Waker::new(),
98
4.80k
                is_disconnected: false,
99
4.80k
            }),
100
4.80k
            _marker: PhantomData,
101
4.80k
        }
102
4.80k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::new
Line
Count
Source
93
8
    pub(crate) fn new() -> Self {
94
8
        Channel {
95
8
            inner: Spinlock::new(Inner {
96
8
                senders: Waker::new(),
97
8
                receivers: Waker::new(),
98
8
                is_disconnected: false,
99
8
            }),
100
8
            _marker: PhantomData,
101
8
        }
102
8
    }
<crossbeam_channel::flavors::zero::Channel<()>>::new
Line
Count
Source
93
5
    pub(crate) fn new() -> Self {
94
5
        Channel {
95
5
            inner: Spinlock::new(Inner {
96
5
                senders: Waker::new(),
97
5
                receivers: Waker::new(),
98
5
                is_disconnected: false,
99
5
            }),
100
5
            _marker: PhantomData,
101
5
        }
102
5
    }
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::new
Line
Count
Source
93
100
    pub(crate) fn new() -> Self {
94
100
        Channel {
95
100
            inner: Spinlock::new(Inner {
96
100
                senders: Waker::new(),
97
100
                receivers: Waker::new(),
98
100
                is_disconnected: false,
99
100
            }),
100
100
            _marker: PhantomData,
101
100
        }
102
100
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::new
Line
Count
Source
93
1.00k
    pub(crate) fn new() -> Self {
94
1.00k
        Channel {
95
1.00k
            inner: Spinlock::new(Inner {
96
1.00k
                senders: Waker::new(),
97
1.00k
                receivers: Waker::new(),
98
1.00k
                is_disconnected: false,
99
1.00k
            }),
100
1.00k
            _marker: PhantomData,
101
1.00k
        }
102
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::new
Line
Count
Source
93
5
    pub(crate) fn new() -> Self {
94
5
        Channel {
95
5
            inner: Spinlock::new(Inner {
96
5
                senders: Waker::new(),
97
5
                receivers: Waker::new(),
98
5
                is_disconnected: false,
99
5
            }),
100
5
            _marker: PhantomData,
101
5
        }
102
5
    }
<crossbeam_channel::flavors::zero::Channel<()>>::new
Line
Count
Source
93
29
    pub(crate) fn new() -> Self {
94
29
        Channel {
95
29
            inner: Spinlock::new(Inner {
96
29
                senders: Waker::new(),
97
29
                receivers: Waker::new(),
98
29
                is_disconnected: false,
99
29
            }),
100
29
            _marker: PhantomData,
101
29
        }
102
29
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::new
Line
Count
Source
93
1.00k
    pub(crate) fn new() -> Self {
94
1.00k
        Channel {
95
1.00k
            inner: Spinlock::new(Inner {
96
1.00k
                senders: Waker::new(),
97
1.00k
                receivers: Waker::new(),
98
1.00k
                is_disconnected: false,
99
1.00k
            }),
100
1.00k
            _marker: PhantomData,
101
1.00k
        }
102
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::new
Line
Count
Source
93
10
    pub(crate) fn new() -> Self {
94
10
        Channel {
95
10
            inner: Spinlock::new(Inner {
96
10
                senders: Waker::new(),
97
10
                receivers: Waker::new(),
98
10
                is_disconnected: false,
99
10
            }),
100
10
            _marker: PhantomData,
101
10
        }
102
10
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::new
Line
Count
Source
93
47
    pub(crate) fn new() -> Self {
94
47
        Channel {
95
47
            inner: Spinlock::new(Inner {
96
47
                senders: Waker::new(),
97
47
                receivers: Waker::new(),
98
47
                is_disconnected: false,
99
47
            }),
100
47
            _marker: PhantomData,
101
47
        }
102
47
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::new
Line
Count
Source
93
31
    pub(crate) fn new() -> Self {
94
31
        Channel {
95
31
            inner: Spinlock::new(Inner {
96
31
                senders: Waker::new(),
97
31
                receivers: Waker::new(),
98
31
                is_disconnected: false,
99
31
            }),
100
31
            _marker: PhantomData,
101
31
        }
102
31
    }
<crossbeam_channel::flavors::zero::Channel<()>>::new
Line
Count
Source
93
6
    pub(crate) fn new() -> Self {
94
6
        Channel {
95
6
            inner: Spinlock::new(Inner {
96
6
                senders: Waker::new(),
97
6
                receivers: Waker::new(),
98
6
                is_disconnected: false,
99
6
            }),
100
6
            _marker: PhantomData,
101
6
        }
102
6
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::new
Line
Count
Source
93
5
    pub(crate) fn new() -> Self {
94
5
        Channel {
95
5
            inner: Spinlock::new(Inner {
96
5
                senders: Waker::new(),
97
5
                receivers: Waker::new(),
98
5
                is_disconnected: false,
99
5
            }),
100
5
            _marker: PhantomData,
101
5
        }
102
5
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::new
Line
Count
Source
93
3
    pub(crate) fn new() -> Self {
94
3
        Channel {
95
3
            inner: Spinlock::new(Inner {
96
3
                senders: Waker::new(),
97
3
                receivers: Waker::new(),
98
3
                is_disconnected: false,
99
3
            }),
100
3
            _marker: PhantomData,
101
3
        }
102
3
    }
<crossbeam_channel::flavors::zero::Channel<u8>>::new
Line
Count
Source
93
4
    pub(crate) fn new() -> Self {
94
4
        Channel {
95
4
            inner: Spinlock::new(Inner {
96
4
                senders: Waker::new(),
97
4
                receivers: Waker::new(),
98
4
                is_disconnected: false,
99
4
            }),
100
4
            _marker: PhantomData,
101
4
        }
102
4
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::new
Line
Count
Source
93
306
    pub(crate) fn new() -> Self {
94
306
        Channel {
95
306
            inner: Spinlock::new(Inner {
96
306
                senders: Waker::new(),
97
306
                receivers: Waker::new(),
98
306
                is_disconnected: false,
99
306
            }),
100
306
            _marker: PhantomData,
101
306
        }
102
306
    }
<crossbeam_channel::flavors::zero::Channel<i64>>::new
Line
Count
Source
93
1
    pub(crate) fn new() -> Self {
94
1
        Channel {
95
1
            inner: Spinlock::new(Inner {
96
1
                senders: Waker::new(),
97
1
                receivers: Waker::new(),
98
1
                is_disconnected: false,
99
1
            }),
100
1
            _marker: PhantomData,
101
1
        }
102
1
    }
<crossbeam_channel::flavors::zero::Channel<golang::zerosize::zero_size_struct::ZeroSize>>::new
Line
Count
Source
93
1
    pub(crate) fn new() -> Self {
94
1
        Channel {
95
1
            inner: Spinlock::new(Inner {
96
1
                senders: Waker::new(),
97
1
                receivers: Waker::new(),
98
1
                is_disconnected: false,
99
1
            }),
100
1
            _marker: PhantomData,
101
1
        }
102
1
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::new
Line
Count
Source
93
1.13k
    pub(crate) fn new() -> Self {
94
1.13k
        Channel {
95
1.13k
            inner: Spinlock::new(Inner {
96
1.13k
                senders: Waker::new(),
97
1.13k
                receivers: Waker::new(),
98
1.13k
                is_disconnected: false,
99
1.13k
            }),
100
1.13k
            _marker: PhantomData,
101
1.13k
        }
102
1.13k
    }
<crossbeam_channel::flavors::zero::Channel<[u8; 0]>>::new
Line
Count
Source
93
1
    pub(crate) fn new() -> Self {
94
1
        Channel {
95
1
            inner: Spinlock::new(Inner {
96
1
                senders: Waker::new(),
97
1
                receivers: Waker::new(),
98
1
                is_disconnected: false,
99
1
            }),
100
1
            _marker: PhantomData,
101
1
        }
102
1
    }
<crossbeam_channel::flavors::zero::Channel<u32>>::new
Line
Count
Source
93
2
    pub(crate) fn new() -> Self {
94
2
        Channel {
95
2
            inner: Spinlock::new(Inner {
96
2
                senders: Waker::new(),
97
2
                receivers: Waker::new(),
98
2
                is_disconnected: false,
99
2
            }),
100
2
            _marker: PhantomData,
101
2
        }
102
2
    }
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::new
Line
Count
Source
93
1
    pub(crate) fn new() -> Self {
94
1
        Channel {
95
1
            inner: Spinlock::new(Inner {
96
1
                senders: Waker::new(),
97
1
                receivers: Waker::new(),
98
1
                is_disconnected: false,
99
1
            }),
100
1
            _marker: PhantomData,
101
1
        }
102
1
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::new
Line
Count
Source
93
6
    pub(crate) fn new() -> Self {
94
6
        Channel {
95
6
            inner: Spinlock::new(Inner {
96
6
                senders: Waker::new(),
97
6
                receivers: Waker::new(),
98
6
                is_disconnected: false,
99
6
            }),
100
6
            _marker: PhantomData,
101
6
        }
102
6
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::new
Line
Count
Source
93
1.00k
    pub(crate) fn new() -> Self {
94
1.00k
        Channel {
95
1.00k
            inner: Spinlock::new(Inner {
96
1.00k
                senders: Waker::new(),
97
1.00k
                receivers: Waker::new(),
98
1.00k
                is_disconnected: false,
99
1.00k
            }),
100
1.00k
            _marker: PhantomData,
101
1.00k
        }
102
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::new
Line
Count
Source
93
57
    pub(crate) fn new() -> Self {
94
57
        Channel {
95
57
            inner: Spinlock::new(Inner {
96
57
                senders: Waker::new(),
97
57
                receivers: Waker::new(),
98
57
                is_disconnected: false,
99
57
            }),
100
57
            _marker: PhantomData,
101
57
        }
102
57
    }
<crossbeam_channel::flavors::zero::Channel<()>>::new
Line
Count
Source
93
32
    pub(crate) fn new() -> Self {
94
32
        Channel {
95
32
            inner: Spinlock::new(Inner {
96
32
                senders: Waker::new(),
97
32
                receivers: Waker::new(),
98
32
                is_disconnected: false,
99
32
            }),
100
32
            _marker: PhantomData,
101
32
        }
102
32
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::new
Line
Count
Source
93
7
    pub(crate) fn new() -> Self {
94
7
        Channel {
95
7
            inner: Spinlock::new(Inner {
96
7
                senders: Waker::new(),
97
7
                receivers: Waker::new(),
98
7
                is_disconnected: false,
99
7
            }),
100
7
            _marker: PhantomData,
101
7
        }
102
7
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::new
Line
Count
Source
93
4
    pub(crate) fn new() -> Self {
94
4
        Channel {
95
4
            inner: Spinlock::new(Inner {
96
4
                senders: Waker::new(),
97
4
                receivers: Waker::new(),
98
4
                is_disconnected: false,
99
4
            }),
100
4
            _marker: PhantomData,
101
4
        }
102
4
    }
<crossbeam_channel::flavors::zero::Channel<()>>::new
Line
Count
Source
93
2
    pub(crate) fn new() -> Self {
94
2
        Channel {
95
2
            inner: Spinlock::new(Inner {
96
2
                senders: Waker::new(),
97
2
                receivers: Waker::new(),
98
2
                is_disconnected: false,
99
2
            }),
100
2
            _marker: PhantomData,
101
2
        }
102
2
    }
103
104
    /// Returns a receiver handle to the channel.
105
15.5M
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
15.5M
        Receiver(self)
107
15.5M
    }
<crossbeam_channel::flavors::zero::Channel<()>>::receiver
Line
Count
Source
105
76.8k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
76.8k
        Receiver(self)
107
76.8k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::receiver
Line
Count
Source
105
36.8k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
36.8k
        Receiver(self)
107
36.8k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::receiver
Line
Count
Source
105
78
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
78
        Receiver(self)
107
78
    }
<crossbeam_channel::flavors::zero::Channel<()>>::receiver
Line
Count
Source
105
15.2M
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
15.2M
        Receiver(self)
107
15.2M
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::receiver
Line
Count
Source
105
3.12k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
3.12k
        Receiver(self)
107
3.12k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::receiver
Line
Count
Source
105
4
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
4
        Receiver(self)
107
4
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::receiver
Line
Count
Source
105
89.0k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
89.0k
        Receiver(self)
107
89.0k
    }
<crossbeam_channel::flavors::zero::Channel<u8>>::receiver
Line
Count
Source
105
12.9k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
12.9k
        Receiver(self)
107
12.9k
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::receiver
Line
Count
Source
105
1
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
1
        Receiver(self)
107
1
    }
<crossbeam_channel::flavors::zero::Channel<()>>::receiver
Line
Count
Source
105
5.81k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
5.81k
        Receiver(self)
107
5.81k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::receiver
Line
Count
Source
105
18.1k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
18.1k
        Receiver(self)
107
18.1k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::receiver
Line
Count
Source
105
83
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
83
        Receiver(self)
107
83
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::receiver
Line
Count
Source
105
69
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
69
        Receiver(self)
107
69
    }
<crossbeam_channel::flavors::zero::Channel<()>>::receiver
Line
Count
Source
105
54.5k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
54.5k
        Receiver(self)
107
54.5k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::receiver
Line
Count
Source
105
16.1k
    pub(crate) fn receiver(&self) -> Receiver<'_, T> {
106
16.1k
        Receiver(self)
107
16.1k
    }
108
109
    /// Returns a sender handle to the channel.
110
18.9M
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
18.9M
        Sender(self)
112
18.9M
    }
<crossbeam_channel::flavors::zero::Channel<()>>::sender
Line
Count
Source
110
172k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
172k
        Sender(self)
112
172k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::sender
Line
Count
Source
110
65.8k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
65.8k
        Sender(self)
112
65.8k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::sender
Line
Count
Source
110
5.24M
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
5.24M
        Sender(self)
112
5.24M
    }
<crossbeam_channel::flavors::zero::Channel<()>>::sender
Line
Count
Source
110
8.79k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
8.79k
        Sender(self)
112
8.79k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::sender
Line
Count
Source
110
3.97k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
3.97k
        Sender(self)
112
3.97k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::sender
Line
Count
Source
110
187k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
187k
        Sender(self)
112
187k
    }
<crossbeam_channel::flavors::zero::Channel<u32>>::sender
Line
Count
Source
110
13
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
13
        Sender(self)
112
13
    }
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::sender
Line
Count
Source
110
4
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
4
        Sender(self)
112
4
    }
<crossbeam_channel::flavors::zero::Channel<u8>>::sender
Line
Count
Source
110
11.5k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
11.5k
        Sender(self)
112
11.5k
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::sender
Line
Count
Source
110
5
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
5
        Sender(self)
112
5
    }
<crossbeam_channel::flavors::zero::Channel<i64>>::sender
Line
Count
Source
110
5
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
5
        Sender(self)
112
5
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::sender
Line
Count
Source
110
56.6k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
56.6k
        Sender(self)
112
56.6k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::sender
Line
Count
Source
110
2.47k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
2.47k
        Sender(self)
112
2.47k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::sender
Line
Count
Source
110
13.0M
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
13.0M
        Sender(self)
112
13.0M
    }
<crossbeam_channel::flavors::zero::Channel<()>>::sender
Line
Count
Source
110
13.5k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
13.5k
        Sender(self)
112
13.5k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::sender
Line
Count
Source
110
50
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
50
        Sender(self)
112
50
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::sender
Line
Count
Source
110
48.2k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
48.2k
        Sender(self)
112
48.2k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::sender
Line
Count
Source
110
102k
    pub(crate) fn sender(&self) -> Sender<'_, T> {
111
102k
        Sender(self)
112
102k
    }
113
114
    /// Attempts to reserve a slot for sending a message.
115
9.48M
    fn start_send(&self, token: &mut Token) -> bool {
116
9.48M
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
9.48M
        if let Some(
operation94.7k
) = inner.receivers.try_select() {
120
94.7k
            token.zero = operation.packet;
121
94.7k
            true
122
9.39M
        } else if inner.is_disconnected {
123
10
            token.zero = 0;
124
10
            true
125
        } else {
126
9.39M
            false
127
        }
128
9.48M
    }
<crossbeam_channel::flavors::zero::Channel<()>>::start_send
Line
Count
Source
115
69.7k
    fn start_send(&self, token: &mut Token) -> bool {
116
69.7k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
69.7k
        if let Some(
operation447
) = inner.receivers.try_select() {
120
447
            token.zero = operation.packet;
121
447
            true
122
69.2k
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
69.2k
            false
127
        }
128
69.6k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::start_send
Line
Count
Source
115
1.12k
    fn start_send(&self, token: &mut Token) -> bool {
116
1.12k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
1.12k
        if let Some(
operation131
) = inner.receivers.try_select() {
120
131
            token.zero = operation.packet;
121
131
            true
122
992
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
992
            false
127
        }
128
1.12k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::start_send
Line
Count
Source
115
61.8k
    fn start_send(&self, token: &mut Token) -> bool {
116
61.8k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
61.8k
        if let Some(
operation39.2k
) = inner.receivers.try_select() {
120
39.2k
            token.zero = operation.packet;
121
39.2k
            true
122
22.5k
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
22.5k
            false
127
        }
128
61.8k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::start_send
Line
Count
Source
115
5.38k
    fn start_send(&self, token: &mut Token) -> bool {
116
5.38k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
5.38k
        if let Some(
operation11
) = inner.receivers.try_select() {
120
11
            token.zero = operation.packet;
121
11
            true
122
5.36k
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
5.36k
            false
127
        }
128
5.38k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::start_send
Line
Count
Source
115
2.62M
    fn start_send(&self, token: &mut Token) -> bool {
116
2.62M
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
2.62M
        if let Some(
operation3
) = inner.receivers.try_select() {
120
3
            token.zero = operation.packet;
121
3
            true
122
2.62M
        } else if inner.is_disconnected {
123
2
            token.zero = 0;
124
2
            true
125
        } else {
126
2.62M
            false
127
        }
128
2.62M
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::start_send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_send
<crossbeam_channel::flavors::zero::Channel<bool>>::start_send
Line
Count
Source
115
3
    fn start_send(&self, token: &mut Token) -> bool {
116
3
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
3
        if let Some(
operation1
) = inner.receivers.try_select() {
120
1
            token.zero = operation.packet;
121
1
            true
122
2
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
2
            false
127
        }
128
3
    }
<crossbeam_channel::flavors::zero::Channel<i64>>::start_send
Line
Count
Source
115
3
    fn start_send(&self, token: &mut Token) -> bool {
116
3
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
3
        if let Some(
operation1
) = inner.receivers.try_select() {
120
1
            token.zero = operation.packet;
121
1
            true
122
2
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
2
            false
127
        }
128
3
    }
<crossbeam_channel::flavors::zero::Channel<u32>>::start_send
Line
Count
Source
115
9
    fn start_send(&self, token: &mut Token) -> bool {
116
9
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
9
        if let Some(
operation0
) = inner.receivers.try_select() {
120
0
            token.zero = operation.packet;
121
0
            true
122
9
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
9
            false
127
        }
128
9
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any>>>::start_send
<crossbeam_channel::flavors::zero::Channel<i32>>::start_send
Line
Count
Source
115
85.4k
    fn start_send(&self, token: &mut Token) -> bool {
116
85.4k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
85.4k
        if let Some(
operation14.6k
) = inner.receivers.try_select() {
120
14.6k
            token.zero = operation.packet;
121
14.6k
            true
122
70.8k
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
70.8k
            false
127
        }
128
85.4k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::start_send
Line
Count
Source
115
2
    fn start_send(&self, token: &mut Token) -> bool {
116
2
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
2
        if let Some(
operation1
) = inner.receivers.try_select() {
120
1
            token.zero = operation.packet;
121
1
            true
122
1
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
1
            false
127
        }
128
2
    }
<crossbeam_channel::flavors::zero::Channel<u8>>::start_send
Line
Count
Source
115
10.0k
    fn start_send(&self, token: &mut Token) -> bool {
116
10.0k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
10.0k
        if let Some(
operation9.50k
) = inner.receivers.try_select() {
120
9.50k
            token.zero = operation.packet;
121
9.50k
            true
122
522
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
522
            false
127
        }
128
10.0k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::start_send
Line
Count
Source
115
9.61k
    fn start_send(&self, token: &mut Token) -> bool {
116
9.61k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
9.61k
        if let Some(
operation16
) = inner.receivers.try_select() {
120
16
            token.zero = operation.packet;
121
16
            true
122
9.60k
        } else if inner.is_disconnected {
123
1
            token.zero = 0;
124
1
            true
125
        } else {
126
9.60k
            false
127
        }
128
9.61k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::start_send
Line
Count
Source
115
1.32k
    fn start_send(&self, token: &mut Token) -> bool {
116
1.32k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
1.32k
        if let Some(
operation832
) = inner.receivers.try_select() {
120
832
            token.zero = operation.packet;
121
832
            true
122
493
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
493
            false
127
        }
128
1.32k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::start_send
Line
Count
Source
115
6.51M
    fn start_send(&self, token: &mut Token) -> bool {
116
6.51M
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
6.51M
        if let Some(
operation10
) = inner.receivers.try_select() {
120
10
            token.zero = operation.packet;
121
10
            true
122
6.51M
        } else if inner.is_disconnected {
123
7
            token.zero = 0;
124
7
            true
125
        } else {
126
6.51M
            false
127
        }
128
6.51M
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::start_send
Line
Count
Source
115
49.7k
    fn start_send(&self, token: &mut Token) -> bool {
116
49.7k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
49.7k
        if let Some(
operation29.9k
) = inner.receivers.try_select() {
120
29.9k
            token.zero = operation.packet;
121
29.9k
            true
122
19.8k
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
19.8k
            false
127
        }
128
49.7k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::start_send
<crossbeam_channel::flavors::zero::Channel<i32>>::start_send
Line
Count
Source
115
2
    fn start_send(&self, token: &mut Token) -> bool {
116
2
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
2
        if let Some(
operation0
) = inner.receivers.try_select() {
120
0
            token.zero = operation.packet;
121
0
            true
122
2
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
2
            false
127
        }
128
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::start_send
<crossbeam_channel::flavors::zero::Channel<()>>::start_send
Line
Count
Source
115
54.0k
    fn start_send(&self, token: &mut Token) -> bool {
116
54.0k
        let mut inner = self.inner.lock();
117
118
        // If there's a waiting receiver, pair up with it.
119
54.0k
        if let Some(
operation0
) = inner.receivers.try_select() {
120
0
            token.zero = operation.packet;
121
0
            true
122
54.0k
        } else if inner.is_disconnected {
123
0
            token.zero = 0;
124
0
            true
125
        } else {
126
54.0k
            false
127
        }
128
54.0k
    }
129
130
    /// Writes a message into the packet.
131
1.87M
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
1.87M
        // If there is no packet, the channel is disconnected.
133
1.87M
        if token.zero == 0 {
134
10
            return Err(msg);
135
1.87M
        }
136
1.87M
137
1.87M
        let packet = &*(token.zero as *const Packet<T>);
138
1.87M
        packet.msg.get().write(Some(msg));
139
1.87M
        packet.ready.store(true, Ordering::Release);
140
1.87M
        Ok(())
141
1.87M
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::write
Line
Count
Source
131
5
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
5
        // If there is no packet, the channel is disconnected.
133
5
        if token.zero == 0 {
134
0
            return Err(msg);
135
5
        }
136
5
137
5
        let packet = &*(token.zero as *const Packet<T>);
138
5
        packet.msg.get().write(Some(msg));
139
5
        packet.ready.store(true, Ordering::Release);
140
5
        Ok(())
141
5
    }
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::write
Line
Count
Source
131
77.3k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
77.3k
        // If there is no packet, the channel is disconnected.
133
77.3k
        if token.zero == 0 {
134
0
            return Err(msg);
135
77.3k
        }
136
77.3k
137
77.3k
        let packet = &*(token.zero as *const Packet<T>);
138
77.3k
        packet.msg.get().write(Some(msg));
139
77.3k
        packet.ready.store(true, Ordering::Release);
140
77.3k
        Ok(())
141
77.3k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::write
Line
Count
Source
131
112k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
112k
        // If there is no packet, the channel is disconnected.
133
112k
        if token.zero == 0 {
134
0
            return Err(msg);
135
112k
        }
136
112k
137
112k
        let packet = &*(token.zero as *const Packet<T>);
138
112k
        packet.msg.get().write(Some(msg));
139
112k
        packet.ready.store(true, Ordering::Release);
140
112k
        Ok(())
141
112k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::write
Line
Count
Source
131
493
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
493
        // If there is no packet, the channel is disconnected.
133
493
        if token.zero == 0 {
134
0
            return Err(msg);
135
493
        }
136
493
137
493
        let packet = &*(token.zero as *const Packet<T>);
138
493
        packet.msg.get().write(Some(msg));
139
493
        packet.ready.store(true, Ordering::Release);
140
493
        Ok(())
141
493
    }
<crossbeam_channel::flavors::zero::Channel<()>>::write
Line
Count
Source
131
20.9k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
20.9k
        // If there is no packet, the channel is disconnected.
133
20.9k
        if token.zero == 0 {
134
0
            return Err(msg);
135
20.9k
        }
136
20.9k
137
20.9k
        let packet = &*(token.zero as *const Packet<T>);
138
20.9k
        packet.msg.get().write(Some(msg));
139
20.9k
        packet.ready.store(true, Ordering::Release);
140
20.9k
        Ok(())
141
20.9k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::write
Line
Count
Source
131
40.2k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
40.2k
        // If there is no packet, the channel is disconnected.
133
40.2k
        if token.zero == 0 {
134
0
            return Err(msg);
135
40.2k
        }
136
40.2k
137
40.2k
        let packet = &*(token.zero as *const Packet<T>);
138
40.2k
        packet.msg.get().write(Some(msg));
139
40.2k
        packet.ready.store(true, Ordering::Release);
140
40.2k
        Ok(())
141
40.2k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::write
Line
Count
Source
131
768k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
768k
        // If there is no packet, the channel is disconnected.
133
768k
        if token.zero == 0 {
134
0
            return Err(msg);
135
768k
        }
136
768k
137
768k
        let packet = &*(token.zero as *const Packet<T>);
138
768k
        packet.msg.get().write(Some(msg));
139
768k
        packet.ready.store(true, Ordering::Release);
140
768k
        Ok(())
141
768k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::write
Line
Count
Source
131
1.00k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
1.00k
        // If there is no packet, the channel is disconnected.
133
1.00k
        if token.zero == 0 {
134
0
            return Err(msg);
135
1.00k
        }
136
1.00k
137
1.00k
        let packet = &*(token.zero as *const Packet<T>);
138
1.00k
        packet.msg.get().write(Some(msg));
139
1.00k
        packet.ready.store(true, Ordering::Release);
140
1.00k
        Ok(())
141
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::write
Line
Count
Source
131
26
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
26
        // If there is no packet, the channel is disconnected.
133
26
        if token.zero == 0 {
134
2
            return Err(msg);
135
24
        }
136
24
137
24
        let packet = &*(token.zero as *const Packet<T>);
138
24
        packet.msg.get().write(Some(msg));
139
24
        packet.ready.store(true, Ordering::Release);
140
24
        Ok(())
141
26
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::write
Line
Count
Source
131
7
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
7
        // If there is no packet, the channel is disconnected.
133
7
        if token.zero == 0 {
134
0
            return Err(msg);
135
7
        }
136
7
137
7
        let packet = &*(token.zero as *const Packet<T>);
138
7
        packet.msg.get().write(Some(msg));
139
7
        packet.ready.store(true, Ordering::Release);
140
7
        Ok(())
141
7
    }
<crossbeam_channel::flavors::zero::Channel<()>>::write
Line
Count
Source
131
5
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
5
        // If there is no packet, the channel is disconnected.
133
5
        if token.zero == 0 {
134
0
            return Err(msg);
135
5
        }
136
5
137
5
        let packet = &*(token.zero as *const Packet<T>);
138
5
        packet.msg.get().write(Some(msg));
139
5
        packet.ready.store(true, Ordering::Release);
140
5
        Ok(())
141
5
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::write
<crossbeam_channel::flavors::zero::Channel<i32>>::write
Line
Count
Source
131
14.6k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
14.6k
        // If there is no packet, the channel is disconnected.
133
14.6k
        if token.zero == 0 {
134
0
            return Err(msg);
135
14.6k
        }
136
14.6k
137
14.6k
        let packet = &*(token.zero as *const Packet<T>);
138
14.6k
        packet.msg.get().write(Some(msg));
139
14.6k
        packet.ready.store(true, Ordering::Release);
140
14.6k
        Ok(())
141
14.6k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::write
<crossbeam_channel::flavors::zero::Channel<bool>>::write
Line
Count
Source
131
124
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
124
        // If there is no packet, the channel is disconnected.
133
124
        if token.zero == 0 {
134
0
            return Err(msg);
135
124
        }
136
124
137
124
        let packet = &*(token.zero as *const Packet<T>);
138
124
        packet.msg.get().write(Some(msg));
139
124
        packet.ready.store(true, Ordering::Release);
140
124
        Ok(())
141
124
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::write
Line
Count
Source
131
43.4k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
43.4k
        // If there is no packet, the channel is disconnected.
133
43.4k
        if token.zero == 0 {
134
0
            return Err(msg);
135
43.4k
        }
136
43.4k
137
43.4k
        let packet = &*(token.zero as *const Packet<T>);
138
43.4k
        packet.msg.get().write(Some(msg));
139
43.4k
        packet.ready.store(true, Ordering::Release);
140
43.4k
        Ok(())
141
43.4k
    }
<crossbeam_channel::flavors::zero::Channel<u8>>::write
Line
Count
Source
131
10.0k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
10.0k
        // If there is no packet, the channel is disconnected.
133
10.0k
        if token.zero == 0 {
134
0
            return Err(msg);
135
10.0k
        }
136
10.0k
137
10.0k
        let packet = &*(token.zero as *const Packet<T>);
138
10.0k
        packet.msg.get().write(Some(msg));
139
10.0k
        packet.ready.store(true, Ordering::Release);
140
10.0k
        Ok(())
141
10.0k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<u32>>::write
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any>>>::write
<crossbeam_channel::flavors::zero::Channel<i64>>::write
Line
Count
Source
131
1
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
1
        // If there is no packet, the channel is disconnected.
133
1
        if token.zero == 0 {
134
0
            return Err(msg);
135
1
        }
136
1
137
1
        let packet = &*(token.zero as *const Packet<T>);
138
1
        packet.msg.get().write(Some(msg));
139
1
        packet.ready.store(true, Ordering::Release);
140
1
        Ok(())
141
1
    }
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::write
Line
Count
Source
131
1
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
1
        // If there is no packet, the channel is disconnected.
133
1
        if token.zero == 0 {
134
0
            return Err(msg);
135
1
        }
136
1
137
1
        let packet = &*(token.zero as *const Packet<T>);
138
1
        packet.msg.get().write(Some(msg));
139
1
        packet.ready.store(true, Ordering::Release);
140
1
        Ok(())
141
1
    }
<crossbeam_channel::flavors::zero::Channel<()>>::write
Line
Count
Source
131
689k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
689k
        // If there is no packet, the channel is disconnected.
133
689k
        if token.zero == 0 {
134
1
            return Err(msg);
135
689k
        }
136
689k
137
689k
        let packet = &*(token.zero as *const Packet<T>);
138
689k
        packet.msg.get().write(Some(msg));
139
689k
        packet.ready.store(true, Ordering::Release);
140
689k
        Ok(())
141
689k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::write
Line
Count
Source
131
1.00k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
1.00k
        // If there is no packet, the channel is disconnected.
133
1.00k
        if token.zero == 0 {
134
0
            return Err(msg);
135
1.00k
        }
136
1.00k
137
1.00k
        let packet = &*(token.zero as *const Packet<T>);
138
1.00k
        packet.msg.get().write(Some(msg));
139
1.00k
        packet.ready.store(true, Ordering::Release);
140
1.00k
        Ok(())
141
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::write
Line
Count
Source
131
41
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
41
        // If there is no packet, the channel is disconnected.
133
41
        if token.zero == 0 {
134
7
            return Err(msg);
135
34
        }
136
34
137
34
        let packet = &*(token.zero as *const Packet<T>);
138
34
        packet.msg.get().write(Some(msg));
139
34
        packet.ready.store(true, Ordering::Release);
140
34
        Ok(())
141
41
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::write
Line
Count
Source
131
30.1k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
30.1k
        // If there is no packet, the channel is disconnected.
133
30.1k
        if token.zero == 0 {
134
0
            return Err(msg);
135
30.1k
        }
136
30.1k
137
30.1k
        let packet = &*(token.zero as *const Packet<T>);
138
30.1k
        packet.msg.get().write(Some(msg));
139
30.1k
        packet.ready.store(true, Ordering::Release);
140
30.1k
        Ok(())
141
30.1k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::write
<crossbeam_channel::flavors::zero::Channel<()>>::write
Line
Count
Source
131
36.2k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
36.2k
        // If there is no packet, the channel is disconnected.
133
36.2k
        if token.zero == 0 {
134
0
            return Err(msg);
135
36.2k
        }
136
36.2k
137
36.2k
        let packet = &*(token.zero as *const Packet<T>);
138
36.2k
        packet.msg.get().write(Some(msg));
139
36.2k
        packet.ready.store(true, Ordering::Release);
140
36.2k
        Ok(())
141
36.2k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::write
Line
Count
Source
131
29.7k
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
29.7k
        // If there is no packet, the channel is disconnected.
133
29.7k
        if token.zero == 0 {
134
0
            return Err(msg);
135
29.7k
        }
136
29.7k
137
29.7k
        let packet = &*(token.zero as *const Packet<T>);
138
29.7k
        packet.msg.get().write(Some(msg));
139
29.7k
        packet.ready.store(true, Ordering::Release);
140
29.7k
        Ok(())
141
29.7k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::write
Line
Count
Source
131
2
    pub(crate) unsafe fn write(&self, token: &mut Token, msg: T) -> Result<(), T> {
132
2
        // If there is no packet, the channel is disconnected.
133
2
        if token.zero == 0 {
134
0
            return Err(msg);
135
2
        }
136
2
137
2
        let packet = &*(token.zero as *const Packet<T>);
138
2
        packet.msg.get().write(Some(msg));
139
2
        packet.ready.store(true, Ordering::Release);
140
2
        Ok(())
141
2
    }
142
143
    /// Attempts to pair up with a sender.
144
7.82M
    fn start_recv(&self, token: &mut Token) -> bool {
145
7.82M
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
7.82M
        if let Some(
operation26.0k
) = inner.senders.try_select() {
149
26.0k
            token.zero = operation.packet;
150
26.0k
            true
151
7.80M
        } else if inner.is_disconnected {
152
1.01k
            token.zero = 0;
153
1.01k
            true
154
        } else {
155
7.79M
            false
156
        }
157
7.82M
    }
<crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Line
Count
Source
144
54.6k
    fn start_recv(&self, token: &mut Token) -> bool {
145
54.6k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
54.6k
        if let Some(
operation19.0k
) = inner.senders.try_select() {
149
19.0k
            token.zero = operation.packet;
150
19.0k
            true
151
35.6k
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
35.6k
            false
156
        }
157
54.6k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::start_recv
Line
Count
Source
144
32.0k
    fn start_recv(&self, token: &mut Token) -> bool {
145
32.0k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
32.0k
        if let Some(
operation19.4k
) = inner.senders.try_select() {
149
19.4k
            token.zero = operation.packet;
150
19.4k
            true
151
12.5k
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
12.5k
            false
156
        }
157
32.0k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::start_recv
Line
Count
Source
144
1.57k
    fn start_recv(&self, token: &mut Token) -> bool {
145
1.57k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
1.57k
        if let Some(
operation869
) = inner.senders.try_select() {
149
869
            token.zero = operation.packet;
150
869
            true
151
709
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
709
            false
156
        }
157
1.57k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Line
Count
Source
144
7.64M
    fn start_recv(&self, token: &mut Token) -> bool {
145
7.64M
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
18.4E
        if let Some(operation) = 
inner.senders.try_select()7.64M
{
149
18.4E
            token.zero = operation.packet;
150
18.4E
            true
151
7.68M
        } else if inner.is_disconnected {
152
20
            token.zero = 0;
153
20
            true
154
        } else {
155
7.68M
            false
156
        }
157
7.64M
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::start_recv
<crossbeam_channel::flavors::zero::Channel<i32>>::start_recv
Line
Count
Source
144
26
    fn start_recv(&self, token: &mut Token) -> bool {
145
26
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
26
        if let Some(
operation0
) = inner.senders.try_select() {
149
0
            token.zero = operation.packet;
150
0
            true
151
26
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
26
            false
156
        }
157
26
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
<crossbeam_channel::flavors::zero::Channel<i32>>::start_recv
Line
Count
Source
144
2
    fn start_recv(&self, token: &mut Token) -> bool {
145
2
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
2
        if let Some(
operation1
) = inner.senders.try_select() {
149
1
            token.zero = operation.packet;
150
1
            true
151
1
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
1
            false
156
        }
157
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
<crossbeam_channel::flavors::zero::Channel<u8>>::start_recv
Line
Count
Source
144
11.9k
    fn start_recv(&self, token: &mut Token) -> bool {
145
11.9k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
11.9k
        if let Some(
operation0
) = inner.senders.try_select() {
149
0
            token.zero = operation.packet;
150
0
            true
151
11.9k
        } else if inner.is_disconnected {
152
1
            token.zero = 0;
153
1
            true
154
        } else {
155
11.9k
            false
156
        }
157
11.9k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
<crossbeam_channel::flavors::zero::Channel<bool>>::start_recv
Line
Count
Source
144
1
    fn start_recv(&self, token: &mut Token) -> bool {
145
1
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
1
        if let Some(operation) = inner.senders.try_select() {
149
1
            token.zero = operation.packet;
150
1
            true
151
0
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
0
            false
156
        }
157
1
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::start_recv
Line
Count
Source
144
57.1k
    fn start_recv(&self, token: &mut Token) -> bool {
145
57.1k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
57.1k
        if let Some(
operation17.2k
) = inner.senders.try_select() {
149
17.2k
            token.zero = operation.packet;
150
17.2k
            true
151
39.9k
        } else if inner.is_disconnected {
152
989
            token.zero = 0;
153
989
            true
154
        } else {
155
38.9k
            false
156
        }
157
57.1k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Line
Count
Source
144
5.26k
    fn start_recv(&self, token: &mut Token) -> bool {
145
5.26k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
5.26k
        if let Some(
operation584
) = inner.senders.try_select() {
149
584
            token.zero = operation.packet;
150
584
            true
151
4.68k
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
4.68k
            false
156
        }
157
5.26k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::start_recv
<crossbeam_channel::flavors::zero::Channel<i32>>::start_recv
Line
Count
Source
144
29
    fn start_recv(&self, token: &mut Token) -> bool {
145
29
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
29
        if let Some(
operation0
) = inner.senders.try_select() {
149
0
            token.zero = operation.packet;
150
0
            true
151
29
        } else if inner.is_disconnected {
152
1
            token.zero = 0;
153
1
            true
154
        } else {
155
28
            false
156
        }
157
29
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::start_recv
Line
Count
Source
144
16.0k
    fn start_recv(&self, token: &mut Token) -> bool {
145
16.0k
        let mut inner = self.inner.lock();
146
147
        // If there's a waiting sender, pair up with it.
148
16.0k
        if let Some(
operation9.94k
) = inner.senders.try_select() {
149
9.94k
            token.zero = operation.packet;
150
9.94k
            true
151
6.14k
        } else if inner.is_disconnected {
152
0
            token.zero = 0;
153
0
            true
154
        } else {
155
6.14k
            false
156
        }
157
16.0k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::start_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::start_recv
158
159
    /// Reads a message from the packet.
160
471k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
471k
        // If there is no packet, the channel is disconnected.
162
471k
        if token.zero == 0 {
163
1.01k
            return Err(());
164
470k
        }
165
470k
166
470k
        let packet = &*(token.zero as *const Packet<T>);
167
470k
168
470k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
410k
            let msg = packet.msg.get().replace(None).unwrap();
173
410k
            packet.ready.store(true, Ordering::Release);
174
410k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
60.6k
            packet.wait_ready();
179
60.6k
            let msg = packet.msg.get().replace(None).unwrap();
180
60.6k
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
60.6k
            Ok(msg)
182
        }
183
472k
    }
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::read
Line
Count
Source
160
77.7k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
77.7k
        // If there is no packet, the channel is disconnected.
162
77.7k
        if token.zero == 0 {
163
0
            return Err(());
164
77.7k
        }
165
77.7k
166
77.7k
        let packet = &*(token.zero as *const Packet<T>);
167
77.7k
168
77.7k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
77.7k
            let msg = packet.msg.get().replace(None).unwrap();
173
77.7k
            packet.ready.store(true, Ordering::Release);
174
77.7k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
77.7k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::read
Line
Count
Source
160
113k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
113k
        // If there is no packet, the channel is disconnected.
162
113k
        if token.zero == 0 {
163
0
            return Err(());
164
113k
        }
165
113k
166
113k
        let packet = &*(token.zero as *const Packet<T>);
167
113k
168
113k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
113k
            let msg = packet.msg.get().replace(None).unwrap();
173
113k
            packet.ready.store(true, Ordering::Release);
174
113k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
113k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::read
Line
Count
Source
160
507
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
507
        // If there is no packet, the channel is disconnected.
162
507
        if token.zero == 0 {
163
0
            return Err(());
164
507
        }
165
507
166
507
        let packet = &*(token.zero as *const Packet<T>);
167
507
168
507
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
507
            let msg = packet.msg.get().replace(None).unwrap();
173
507
            packet.ready.store(true, Ordering::Release);
174
507
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
507
    }
<crossbeam_channel::flavors::zero::Channel<()>>::read
Line
Count
Source
160
19.9k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
19.9k
        // If there is no packet, the channel is disconnected.
162
19.9k
        if token.zero == 0 {
163
0
            return Err(());
164
19.9k
        }
165
19.9k
166
19.9k
        let packet = &*(token.zero as *const Packet<T>);
167
19.9k
168
19.9k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
0
            let msg = packet.msg.get().replace(None).unwrap();
173
0
            packet.ready.store(true, Ordering::Release);
174
0
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
19.9k
            packet.wait_ready();
179
19.9k
            let msg = packet.msg.get().replace(None).unwrap();
180
19.9k
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
19.9k
            Ok(msg)
182
        }
183
19.9k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::read
Line
Count
Source
160
6
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
6
        // If there is no packet, the channel is disconnected.
162
6
        if token.zero == 0 {
163
0
            return Err(());
164
6
        }
165
6
166
6
        let packet = &*(token.zero as *const Packet<T>);
167
6
168
6
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
6
            let msg = packet.msg.get().replace(None).unwrap();
173
6
            packet.ready.store(true, Ordering::Release);
174
6
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
6
    }
<crossbeam_channel::flavors::zero::Channel<()>>::read
Line
Count
Source
160
32.2k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
32.2k
        // If there is no packet, the channel is disconnected.
162
32.2k
        if token.zero == 0 {
163
20
            return Err(());
164
32.2k
        }
165
32.2k
166
32.2k
        let packet = &*(token.zero as *const Packet<T>);
167
32.2k
168
32.2k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
31.1k
            let msg = packet.msg.get().replace(None).unwrap();
173
31.1k
            packet.ready.store(true, Ordering::Release);
174
31.1k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
1.15k
            packet.wait_ready();
179
1.15k
            let msg = packet.msg.get().replace(None).unwrap();
180
1.15k
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
1.15k
            Ok(msg)
182
        }
183
32.2k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::read
Line
Count
Source
160
1.00k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
1.00k
        // If there is no packet, the channel is disconnected.
162
1.00k
        if token.zero == 0 {
163
0
            return Err(());
164
1.00k
        }
165
1.00k
166
1.00k
        let packet = &*(token.zero as *const Packet<T>);
167
1.00k
168
1.00k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
0
            let msg = packet.msg.get().replace(None).unwrap();
173
0
            packet.ready.store(true, Ordering::Release);
174
0
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
1.00k
            packet.wait_ready();
179
1.00k
            let msg = packet.msg.get().replace(None).unwrap();
180
1.00k
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
1.00k
            Ok(msg)
182
        }
183
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::read
Line
Count
Source
160
23
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
23
        // If there is no packet, the channel is disconnected.
162
23
        if token.zero == 0 {
163
0
            return Err(());
164
23
        }
165
23
166
23
        let packet = &*(token.zero as *const Packet<T>);
167
23
168
23
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
0
            let msg = packet.msg.get().replace(None).unwrap();
173
0
            packet.ready.store(true, Ordering::Release);
174
0
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
23
            packet.wait_ready();
179
23
            let msg = packet.msg.get().replace(None).unwrap();
180
23
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
23
            Ok(msg)
182
        }
183
23
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::read
Line
Count
Source
160
20.1k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
20.1k
        // If there is no packet, the channel is disconnected.
162
20.1k
        if token.zero == 0 {
163
0
            return Err(());
164
20.1k
        }
165
20.1k
166
20.1k
        let packet = &*(token.zero as *const Packet<T>);
167
20.1k
168
20.1k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
19.5k
            let msg = packet.msg.get().replace(None).unwrap();
173
19.5k
            packet.ready.store(true, Ordering::Release);
174
19.5k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
631
            packet.wait_ready();
179
631
            let msg = packet.msg.get().replace(None).unwrap();
180
631
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
631
            Ok(msg)
182
        }
183
20.1k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::read
Line
Count
Source
160
20.9k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
20.9k
        // If there is no packet, the channel is disconnected.
162
20.9k
        if token.zero == 0 {
163
0
            return Err(());
164
20.9k
        }
165
20.9k
166
20.9k
        let packet = &*(token.zero as *const Packet<T>);
167
20.9k
168
20.9k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
21.0k
            let msg = packet.msg.get().replace(None).unwrap();
173
21.0k
            packet.ready.store(true, Ordering::Release);
174
21.0k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
21.0k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::read
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::read
Line
Count
Source
160
5
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
5
        // If there is no packet, the channel is disconnected.
162
5
        if token.zero == 0 {
163
0
            return Err(());
164
5
        }
165
5
166
5
        let packet = &*(token.zero as *const Packet<T>);
167
5
168
5
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
5
            let msg = packet.msg.get().replace(None).unwrap();
173
5
            packet.ready.store(true, Ordering::Release);
174
5
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
5
    }
<crossbeam_channel::flavors::zero::Channel<()>>::read
Line
Count
Source
160
100
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
100
        // If there is no packet, the channel is disconnected.
162
100
        if token.zero == 0 {
163
0
            return Err(());
164
100
        }
165
100
166
100
        let packet = &*(token.zero as *const Packet<T>);
167
100
168
100
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
100
            let msg = packet.msg.get().replace(None).unwrap();
173
100
            packet.ready.store(true, Ordering::Release);
174
100
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
100
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<u32>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
<crossbeam_channel::flavors::zero::Channel<i64>>::read
Line
Count
Source
160
1
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
1
        // If there is no packet, the channel is disconnected.
162
1
        if token.zero == 0 {
163
0
            return Err(());
164
1
        }
165
1
166
1
        let packet = &*(token.zero as *const Packet<T>);
167
1
168
1
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
1
            let msg = packet.msg.get().replace(None).unwrap();
173
1
            packet.ready.store(true, Ordering::Release);
174
1
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
1
    }
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::read
Line
Count
Source
160
1
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
1
        // If there is no packet, the channel is disconnected.
162
1
        if token.zero == 0 {
163
0
            return Err(());
164
1
        }
165
1
166
1
        let packet = &*(token.zero as *const Packet<T>);
167
1
168
1
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
1
            let msg = packet.msg.get().replace(None).unwrap();
173
1
            packet.ready.store(true, Ordering::Release);
174
1
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
1
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::read
Line
Count
Source
160
202
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
202
        // If there is no packet, the channel is disconnected.
162
202
        if token.zero == 0 {
163
0
            return Err(());
164
202
        }
165
202
166
202
        let packet = &*(token.zero as *const Packet<T>);
167
202
168
202
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
202
            let msg = packet.msg.get().replace(None).unwrap();
173
202
            packet.ready.store(true, Ordering::Release);
174
202
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
202
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::read
Line
Count
Source
160
38.8k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
38.8k
        // If there is no packet, the channel is disconnected.
162
38.8k
        if token.zero == 0 {
163
989
            return Err(());
164
37.8k
        }
165
37.8k
166
37.8k
        let packet = &*(token.zero as *const Packet<T>);
167
37.8k
168
37.8k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
17.8k
            let msg = packet.msg.get().replace(None).unwrap();
173
17.8k
            packet.ready.store(true, Ordering::Release);
174
17.8k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
20.0k
            packet.wait_ready();
179
20.0k
            let msg = packet.msg.get().replace(None).unwrap();
180
20.0k
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
20.0k
            Ok(msg)
182
        }
183
38.9k
    }
<crossbeam_channel::flavors::zero::Channel<u8>>::read
Line
Count
Source
160
493
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
493
        // If there is no packet, the channel is disconnected.
162
493
        if token.zero == 0 {
163
1
            return Err(());
164
492
        }
165
492
166
492
        let packet = &*(token.zero as *const Packet<T>);
167
492
168
492
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
0
            let msg = packet.msg.get().replace(None).unwrap();
173
0
            packet.ready.store(true, Ordering::Release);
174
0
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
492
            packet.wait_ready();
179
492
            let msg = packet.msg.get().replace(None).unwrap();
180
492
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
492
            Ok(msg)
182
        }
183
493
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::read
Line
Count
Source
160
168
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
168
        // If there is no packet, the channel is disconnected.
162
168
        if token.zero == 0 {
163
0
            return Err(());
164
168
        }
165
168
166
168
        let packet = &*(token.zero as *const Packet<T>);
167
168
168
168
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
0
            let msg = packet.msg.get().replace(None).unwrap();
173
0
            packet.ready.store(true, Ordering::Release);
174
0
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
168
            packet.wait_ready();
179
168
            let msg = packet.msg.get().replace(None).unwrap();
180
168
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
168
            Ok(msg)
182
        }
183
168
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::read
Line
Count
Source
160
29
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
29
        // If there is no packet, the channel is disconnected.
162
29
        if token.zero == 0 {
163
1
            return Err(());
164
28
        }
165
28
166
28
        let packet = &*(token.zero as *const Packet<T>);
167
28
168
28
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
0
            let msg = packet.msg.get().replace(None).unwrap();
173
0
            packet.ready.store(true, Ordering::Release);
174
0
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
28
            packet.wait_ready();
179
28
            let msg = packet.msg.get().replace(None).unwrap();
180
28
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
28
            Ok(msg)
182
        }
183
29
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::read
Line
Count
Source
160
10.1k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
10.1k
        // If there is no packet, the channel is disconnected.
162
10.1k
        if token.zero == 0 {
163
0
            return Err(());
164
10.1k
        }
165
10.1k
166
10.1k
        let packet = &*(token.zero as *const Packet<T>);
167
10.1k
168
10.1k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
9.94k
            let msg = packet.msg.get().replace(None).unwrap();
173
9.94k
            packet.ready.store(true, Ordering::Release);
174
9.94k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
223
            packet.wait_ready();
179
223
            let msg = packet.msg.get().replace(None).unwrap();
180
223
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
223
            Ok(msg)
182
        }
183
10.1k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
<crossbeam_channel::flavors::zero::Channel<()>>::read
Line
Count
Source
160
109k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
109k
        // If there is no packet, the channel is disconnected.
162
109k
        if token.zero == 0 {
163
0
            return Err(());
164
109k
        }
165
109k
166
109k
        let packet = &*(token.zero as *const Packet<T>);
167
109k
168
109k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
108k
            let msg = packet.msg.get().replace(None).unwrap();
173
108k
            packet.ready.store(true, Ordering::Release);
174
108k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
600
            packet.wait_ready();
179
600
            let msg = packet.msg.get().replace(None).unwrap();
180
600
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
600
            Ok(msg)
182
        }
183
109k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::read
Line
Count
Source
160
16.2k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
16.2k
        // If there is no packet, the channel is disconnected.
162
16.2k
        if token.zero == 0 {
163
0
            return Err(());
164
16.2k
        }
165
16.2k
166
16.2k
        let packet = &*(token.zero as *const Packet<T>);
167
16.2k
168
16.2k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
3
            let msg = packet.msg.get().replace(None).unwrap();
173
3
            packet.ready.store(true, Ordering::Release);
174
3
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
16.2k
            packet.wait_ready();
179
16.2k
            let msg = packet.msg.get().replace(None).unwrap();
180
16.2k
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
16.2k
            Ok(msg)
182
        }
183
16.2k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::read
Line
Count
Source
160
10.0k
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
10.0k
        // If there is no packet, the channel is disconnected.
162
10.0k
        if token.zero == 0 {
163
0
            return Err(());
164
10.0k
        }
165
10.0k
166
10.0k
        let packet = &*(token.zero as *const Packet<T>);
167
10.0k
168
10.0k
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
10.0k
            let msg = packet.msg.get().replace(None).unwrap();
173
10.0k
            packet.ready.store(true, Ordering::Release);
174
10.0k
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
0
            packet.wait_ready();
179
0
            let msg = packet.msg.get().replace(None).unwrap();
180
0
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
0
            Ok(msg)
182
        }
183
10.0k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::read
Line
Count
Source
160
3
    pub(crate) unsafe fn read(&self, token: &mut Token) -> Result<T, ()> {
161
3
        // If there is no packet, the channel is disconnected.
162
3
        if token.zero == 0 {
163
0
            return Err(());
164
3
        }
165
3
166
3
        let packet = &*(token.zero as *const Packet<T>);
167
3
168
3
        if packet.on_stack {
169
            // The message has been in the packet from the beginning, so there is no need to wait
170
            // for it. However, after reading the message, we need to set `ready` to `true` in
171
            // order to signal that the packet can be destroyed.
172
2
            let msg = packet.msg.get().replace(None).unwrap();
173
2
            packet.ready.store(true, Ordering::Release);
174
2
            Ok(msg)
175
        } else {
176
            // Wait until the message becomes available, then read it and destroy the
177
            // heap-allocated packet.
178
1
            packet.wait_ready();
179
1
            let msg = packet.msg.get().replace(None).unwrap();
180
1
            drop(Box::from_raw(packet as *const Packet<T> as *mut Packet<T>));
181
1
            Ok(msg)
182
        }
183
3
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::read
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::read
184
185
    /// Attempts to send a message into the channel.
186
32.1k
    pub(crate) fn try_send(&self, msg: T) -> Result<(), TrySendError<T>> {
187
32.1k
        let token = &mut Token::default();
188
32.1k
        let mut inner = self.inner.lock();
189
190
        // If there's a waiting receiver, pair up with it.
191
32.1k
        if let Some(
operation30.7k
) = inner.receivers.try_select() {
192
30.7k
            token.zero = operation.packet;
193
30.7k
            drop(inner);
194
30.7k
            unsafe {
195
30.7k
                self.write(token, msg).ok().unwrap();
196
30.7k
            }
197
30.7k
            Ok(())
198
1.40k
        } else if inner.is_disconnected {
199
4
            Err(TrySendError::Disconnected(msg))
200
        } else {
201
1.39k
            Err(TrySendError::Full(msg))
202
        }
203
32.1k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::try_send
Line
Count
Source
186
2.39k
    pub(crate) fn try_send(&self, msg: T) -> Result<(), TrySendError<T>> {
187
2.39k
        let token = &mut Token::default();
188
2.39k
        let mut inner = self.inner.lock();
189
190
        // If there's a waiting receiver, pair up with it.
191
2.39k
        if let Some(
operation1.00k
) = inner.receivers.try_select() {
192
1.00k
            token.zero = operation.packet;
193
1.00k
            drop(inner);
194
1.00k
            unsafe {
195
1.00k
                self.write(token, msg).ok().unwrap();
196
1.00k
            }
197
1.00k
            Ok(())
198
1.39k
        } else if inner.is_disconnected {
199
0
            Err(TrySendError::Disconnected(msg))
200
        } else {
201
1.39k
            Err(TrySendError::Full(msg))
202
        }
203
2.39k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_send
Line
Count
Source
186
4
    pub(crate) fn try_send(&self, msg: T) -> Result<(), TrySendError<T>> {
187
4
        let token = &mut Token::default();
188
4
        let mut inner = self.inner.lock();
189
190
        // If there's a waiting receiver, pair up with it.
191
4
        if let Some(
operation1
) = inner.receivers.try_select() {
192
1
            token.zero = operation.packet;
193
1
            drop(inner);
194
1
            unsafe {
195
1
                self.write(token, msg).ok().unwrap();
196
1
            }
197
1
            Ok(())
198
3
        } else if inner.is_disconnected {
199
1
            Err(TrySendError::Disconnected(msg))
200
        } else {
201
2
            Err(TrySendError::Full(msg))
202
        }
203
4
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_send
Line
Count
Source
186
4
    pub(crate) fn try_send(&self, msg: T) -> Result<(), TrySendError<T>> {
187
4
        let token = &mut Token::default();
188
4
        let mut inner = self.inner.lock();
189
190
        // If there's a waiting receiver, pair up with it.
191
4
        if let Some(
operation0
) = inner.receivers.try_select() {
192
0
            token.zero = operation.packet;
193
0
            drop(inner);
194
0
            unsafe {
195
0
                self.write(token, msg).ok().unwrap();
196
0
            }
197
0
            Ok(())
198
4
        } else if inner.is_disconnected {
199
1
            Err(TrySendError::Disconnected(msg))
200
        } else {
201
3
            Err(TrySendError::Full(msg))
202
        }
203
4
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::try_send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::try_send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::try_send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::try_send
<crossbeam_channel::flavors::zero::Channel<usize>>::try_send
Line
Count
Source
186
29.7k
    pub(crate) fn try_send(&self, msg: T) -> Result<(), TrySendError<T>> {
187
29.7k
        let token = &mut Token::default();
188
29.7k
        let mut inner = self.inner.lock();
189
190
        // If there's a waiting receiver, pair up with it.
191
29.7k
        if let Some(operation) = inner.receivers.try_select() {
192
29.7k
            token.zero = operation.packet;
193
29.7k
            drop(inner);
194
29.7k
            unsafe {
195
29.7k
                self.write(token, msg).ok().unwrap();
196
29.7k
            }
197
29.7k
            Ok(())
198
0
        } else if inner.is_disconnected {
199
0
            Err(TrySendError::Disconnected(msg))
200
        } else {
201
0
            Err(TrySendError::Full(msg))
202
        }
203
29.7k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::try_send
<crossbeam_channel::flavors::zero::Channel<i32>>::try_send
Line
Count
Source
186
3
    pub(crate) fn try_send(&self, msg: T) -> Result<(), TrySendError<T>> {
187
3
        let token = &mut Token::default();
188
3
        let mut inner = self.inner.lock();
189
190
        // If there's a waiting receiver, pair up with it.
191
3
        if let Some(
operation1
) = inner.receivers.try_select() {
192
1
            token.zero = operation.packet;
193
1
            drop(inner);
194
1
            unsafe {
195
1
                self.write(token, msg).ok().unwrap();
196
1
            }
197
1
            Ok(())
198
2
        } else if inner.is_disconnected {
199
2
            Err(TrySendError::Disconnected(msg))
200
        } else {
201
0
            Err(TrySendError::Full(msg))
202
        }
203
3
    }
204
205
    /// Sends a message into the channel.
206
2.09M
    pub(crate) fn send(
207
2.09M
        &self,
208
2.09M
        msg: T,
209
2.09M
        deadline: Option<Instant>,
210
2.09M
    ) -> Result<(), SendTimeoutError<T>> {
211
2.09M
        let token = &mut Token::default();
212
2.09M
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
2.09M
        if let Some(
operation1.68M
) = inner.receivers.try_select() {
216
1.68M
            token.zero = operation.packet;
217
1.68M
            drop(inner);
218
1.68M
            unsafe {
219
1.68M
                self.write(token, msg).ok().unwrap();
220
1.68M
            }
221
1.68M
            return Ok(());
222
409k
        }
223
409k
224
409k
        if inner.is_disconnected {
225
9
            return Err(SendTimeoutError::Disconnected(msg));
226
409k
        }
227
409k
228
409k
        Context::with(|cx| {
229
409k
            // Prepare for blocking until a receiver wakes us up.
230
409k
            let oper = Operation::hook(token);
231
409k
            let packet = Packet::<T>::message_on_stack(msg);
232
409k
            inner
233
409k
                .senders
234
409k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
409k
            inner.receivers.notify();
236
409k
            drop(inner);
237
409k
238
409k
            // Block the current thread.
239
409k
            let sel = cx.wait_until(deadline);
240
409k
241
409k
            match sel {
242
409k
                Selected::Waiting => 
unreachable!()767
,
243
                Selected::Aborted => {
244
1
                    self.inner.lock().senders.unregister(oper).unwrap();
245
1
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
1
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
2
                    self.inner.lock().senders.unregister(oper).unwrap();
250
2
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
2
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
408k
                    packet.wait_ready();
256
408k
                    Ok(())
257
                }
258
            }
259
409k
        
}408k
)
<crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Line
Count
Source
228
7
        Context::with(|cx| {
229
7
            // Prepare for blocking until a receiver wakes us up.
230
7
            let oper = Operation::hook(token);
231
7
            let packet = Packet::<T>::message_on_stack(msg);
232
7
            inner
233
7
                .senders
234
7
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
7
            inner.receivers.notify();
236
7
            drop(inner);
237
7
238
7
            // Block the current thread.
239
7
            let sel = cx.wait_until(deadline);
240
7
241
7
            match sel {
242
7
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
1
                    self.inner.lock().senders.unregister(oper).unwrap();
245
1
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
1
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
6
                    packet.wait_ready();
256
6
                    Ok(())
257
                }
258
            }
259
7
        })
<crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Line
Count
Source
228
1
        Context::with(|cx| {
229
1
            // Prepare for blocking until a receiver wakes us up.
230
1
            let oper = Operation::hook(token);
231
1
            let packet = Packet::<T>::message_on_stack(msg);
232
1
            inner
233
1
                .senders
234
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
1
            inner.receivers.notify();
236
1
            drop(inner);
237
1
238
1
            // Block the current thread.
239
1
            let sel = cx.wait_until(deadline);
240
1
241
1
            match sel {
242
1
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
1
                    self.inner.lock().senders.unregister(oper).unwrap();
250
1
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
1
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
0
                    packet.wait_ready();
256
0
                    Ok(())
257
                }
258
            }
259
1
        })
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::send::{closure#0}
Line
Count
Source
228
77.7k
        Context::with(|cx| {
229
77.7k
            // Prepare for blocking until a receiver wakes us up.
230
77.7k
            let oper = Operation::hook(token);
231
77.7k
            let packet = Packet::<T>::message_on_stack(msg);
232
77.7k
            inner
233
77.7k
                .senders
234
77.7k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
77.7k
            inner.receivers.notify();
236
77.7k
            drop(inner);
237
77.7k
238
77.7k
            // Block the current thread.
239
77.7k
            let sel = cx.wait_until(deadline);
240
77.7k
241
77.7k
            match sel {
242
77.7k
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
77.7k
                    packet.wait_ready();
256
77.7k
                    Ok(())
257
                }
258
            }
259
77.7k
        })
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::send::{closure#0}
Line
Count
Source
228
507
        Context::with(|cx| {
229
507
            // Prepare for blocking until a receiver wakes us up.
230
507
            let oper = Operation::hook(token);
231
507
            let packet = Packet::<T>::message_on_stack(msg);
232
507
            inner
233
507
                .senders
234
507
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
507
            inner.receivers.notify();
236
507
            drop(inner);
237
507
238
507
            // Block the current thread.
239
507
            let sel = cx.wait_until(deadline);
240
507
241
507
            match sel {
242
507
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
507
                    packet.wait_ready();
256
507
                    Ok(())
257
                }
258
            }
259
507
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Line
Count
Source
228
113k
        Context::with(|cx| {
229
113k
            // Prepare for blocking until a receiver wakes us up.
230
113k
            let oper = Operation::hook(token);
231
113k
            let packet = Packet::<T>::message_on_stack(msg);
232
113k
            inner
233
113k
                .senders
234
113k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
113k
            inner.receivers.notify();
236
113k
            drop(inner);
237
113k
238
113k
            // Block the current thread.
239
113k
            let sel = cx.wait_until(deadline);
240
113k
241
113k
            match sel {
242
113k
                Selected::Waiting => 
unreachable!()474
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
112k
                    packet.wait_ready();
256
112k
                    Ok(())
257
                }
258
            }
259
112k
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Line
Count
Source
228
19.5k
        Context::with(|cx| {
229
19.5k
            // Prepare for blocking until a receiver wakes us up.
230
19.5k
            let oper = Operation::hook(token);
231
19.5k
            let packet = Packet::<T>::message_on_stack(msg);
232
19.5k
            inner
233
19.5k
                .senders
234
19.5k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
19.5k
            inner.receivers.notify();
236
19.5k
            drop(inner);
237
19.5k
238
19.5k
            // Block the current thread.
239
19.5k
            let sel = cx.wait_until(deadline);
240
19.5k
241
19.5k
            match sel {
242
19.5k
                Selected::Waiting => 
unreachable!()20
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
19.5k
                    packet.wait_ready();
256
19.5k
                    Ok(())
257
                }
258
            }
259
19.5k
        })
<crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Line
Count
Source
228
31.1k
        Context::with(|cx| {
229
31.1k
            // Prepare for blocking until a receiver wakes us up.
230
31.1k
            let oper = Operation::hook(token);
231
31.1k
            let packet = Packet::<T>::message_on_stack(msg);
232
31.1k
            inner
233
31.1k
                .senders
234
31.1k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
31.1k
            inner.receivers.notify();
236
31.1k
            drop(inner);
237
31.1k
238
31.1k
            // Block the current thread.
239
31.1k
            let sel = cx.wait_until(deadline);
240
31.1k
241
31.1k
            match sel {
242
31.1k
                Selected::Waiting => 
unreachable!()2
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
31.1k
                    packet.wait_ready();
256
31.1k
                    Ok(())
257
                }
258
            }
259
31.1k
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
<crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Line
Count
Source
228
20.8k
        Context::with(|cx| {
229
20.8k
            // Prepare for blocking until a receiver wakes us up.
230
20.8k
            let oper = Operation::hook(token);
231
20.8k
            let packet = Packet::<T>::message_on_stack(msg);
232
20.8k
            inner
233
20.8k
                .senders
234
20.8k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
20.8k
            inner.receivers.notify();
236
20.8k
            drop(inner);
237
20.8k
238
20.8k
            // Block the current thread.
239
20.8k
            let sel = cx.wait_until(deadline);
240
20.8k
241
20.8k
            match sel {
242
20.8k
                Selected::Waiting => 
unreachable!()171
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
1
                    self.inner.lock().senders.unregister(oper).unwrap();
250
1
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
1
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
20.6k
                    packet.wait_ready();
256
20.6k
                    Ok(())
257
                }
258
            }
259
20.6k
        })
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::send::{closure#0}
Line
Count
Source
228
5
        Context::with(|cx| {
229
5
            // Prepare for blocking until a receiver wakes us up.
230
5
            let oper = Operation::hook(token);
231
5
            let packet = Packet::<T>::message_on_stack(msg);
232
5
            inner
233
5
                .senders
234
5
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
5
            inner.receivers.notify();
236
5
            drop(inner);
237
5
238
5
            // Block the current thread.
239
5
            let sel = cx.wait_until(deadline);
240
5
241
5
            match sel {
242
5
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
5
                    packet.wait_ready();
256
5
                    Ok(())
257
                }
258
            }
259
5
        })
<crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Line
Count
Source
228
100
        Context::with(|cx| {
229
100
            // Prepare for blocking until a receiver wakes us up.
230
100
            let oper = Operation::hook(token);
231
100
            let packet = Packet::<T>::message_on_stack(msg);
232
100
            inner
233
100
                .senders
234
100
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
100
            inner.receivers.notify();
236
100
            drop(inner);
237
100
238
100
            // Block the current thread.
239
100
            let sel = cx.wait_until(deadline);
240
100
241
100
            match sel {
242
100
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
100
                    packet.wait_ready();
256
100
                    Ok(())
257
                }
258
            }
259
100
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any>>>::send::{closure#0}
<crossbeam_channel::flavors::zero::Channel<bool>>::send::{closure#0}
Line
Count
Source
228
202
        Context::with(|cx| {
229
202
            // Prepare for blocking until a receiver wakes us up.
230
202
            let oper = Operation::hook(token);
231
202
            let packet = Packet::<T>::message_on_stack(msg);
232
202
            inner
233
202
                .senders
234
202
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
202
            inner.receivers.notify();
236
202
            drop(inner);
237
202
238
202
            // Block the current thread.
239
202
            let sel = cx.wait_until(deadline);
240
202
241
202
            match sel {
242
202
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
202
                    packet.wait_ready();
256
202
                    Ok(())
257
                }
258
            }
259
202
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<u8>>::send::{closure#0}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::send::{closure#0}
Line
Count
Source
228
1
        Context::with(|cx| {
229
1
            // Prepare for blocking until a receiver wakes us up.
230
1
            let oper = Operation::hook(token);
231
1
            let packet = Packet::<T>::message_on_stack(msg);
232
1
            inner
233
1
                .senders
234
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
1
            inner.receivers.notify();
236
1
            drop(inner);
237
1
238
1
            // Block the current thread.
239
1
            let sel = cx.wait_until(deadline);
240
1
241
1
            match sel {
242
1
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
1
                    packet.wait_ready();
256
1
                    Ok(())
257
                }
258
            }
259
1
        })
<crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Line
Count
Source
228
17.8k
        Context::with(|cx| {
229
17.8k
            // Prepare for blocking until a receiver wakes us up.
230
17.8k
            let oper = Operation::hook(token);
231
17.8k
            let packet = Packet::<T>::message_on_stack(msg);
232
17.8k
            inner
233
17.8k
                .senders
234
17.8k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
17.8k
            inner.receivers.notify();
236
17.8k
            drop(inner);
237
17.8k
238
17.8k
            // Block the current thread.
239
17.8k
            let sel = cx.wait_until(deadline);
240
17.8k
241
17.8k
            match sel {
242
18.4E
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
17.8k
                    packet.wait_ready();
256
17.8k
                    Ok(())
257
                }
258
            }
259
17.8k
        })
<crossbeam_channel::flavors::zero::Channel<i64>>::send::{closure#0}
Line
Count
Source
228
1
        Context::with(|cx| {
229
1
            // Prepare for blocking until a receiver wakes us up.
230
1
            let oper = Operation::hook(token);
231
1
            let packet = Packet::<T>::message_on_stack(msg);
232
1
            inner
233
1
                .senders
234
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
1
            inner.receivers.notify();
236
1
            drop(inner);
237
1
238
1
            // Block the current thread.
239
1
            let sel = cx.wait_until(deadline);
240
1
241
1
            match sel {
242
1
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
1
                    packet.wait_ready();
256
1
                    Ok(())
257
                }
258
            }
259
1
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Line
Count
Source
228
9.94k
        Context::with(|cx| {
229
9.94k
            // Prepare for blocking until a receiver wakes us up.
230
9.94k
            let oper = Operation::hook(token);
231
9.94k
            let packet = Packet::<T>::message_on_stack(msg);
232
9.94k
            inner
233
9.94k
                .senders
234
9.94k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
9.94k
            inner.receivers.notify();
236
9.94k
            drop(inner);
237
9.94k
238
9.94k
            // Block the current thread.
239
9.94k
            let sel = cx.wait_until(deadline);
240
9.94k
241
9.94k
            match sel {
242
9.94k
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
9.94k
                    packet.wait_ready();
256
9.94k
                    Ok(())
257
                }
258
            }
259
9.94k
        })
<crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Line
Count
Source
228
108k
        Context::with(|cx| {
229
108k
            // Prepare for blocking until a receiver wakes us up.
230
108k
            let oper = Operation::hook(token);
231
108k
            let packet = Packet::<T>::message_on_stack(msg);
232
108k
            inner
233
108k
                .senders
234
108k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
108k
            inner.receivers.notify();
236
108k
            drop(inner);
237
108k
238
108k
            // Block the current thread.
239
108k
            let sel = cx.wait_until(deadline);
240
108k
241
108k
            match sel {
242
108k
                Selected::Waiting => 
unreachable!()101
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
108k
                    packet.wait_ready();
256
108k
                    Ok(())
257
                }
258
            }
259
108k
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
<crossbeam_channel::flavors::zero::Channel<usize>>::send::{closure#0}
Line
Count
Source
228
10.0k
        Context::with(|cx| {
229
10.0k
            // Prepare for blocking until a receiver wakes us up.
230
10.0k
            let oper = Operation::hook(token);
231
10.0k
            let packet = Packet::<T>::message_on_stack(msg);
232
10.0k
            inner
233
10.0k
                .senders
234
10.0k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
10.0k
            inner.receivers.notify();
236
10.0k
            drop(inner);
237
10.0k
238
10.0k
            // Block the current thread.
239
10.0k
            let sel = cx.wait_until(deadline);
240
10.0k
241
10.0k
            match sel {
242
10.0k
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
10.0k
                    packet.wait_ready();
256
10.0k
                    Ok(())
257
                }
258
            }
259
10.0k
        })
<crossbeam_channel::flavors::zero::Channel<i32>>::send::{closure#0}
Line
Count
Source
228
2
        Context::with(|cx| {
229
2
            // Prepare for blocking until a receiver wakes us up.
230
2
            let oper = Operation::hook(token);
231
2
            let packet = Packet::<T>::message_on_stack(msg);
232
2
            inner
233
2
                .senders
234
2
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
2
            inner.receivers.notify();
236
2
            drop(inner);
237
2
238
2
            // Block the current thread.
239
2
            let sel = cx.wait_until(deadline);
240
2
241
2
            match sel {
242
2
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
2
                    packet.wait_ready();
256
2
                    Ok(())
257
                }
258
            }
259
2
        })
<crossbeam_channel::flavors::zero::Channel<()>>::send::{closure#0}
Line
Count
Source
228
3
        Context::with(|cx| {
229
3
            // Prepare for blocking until a receiver wakes us up.
230
3
            let oper = Operation::hook(token);
231
3
            let packet = Packet::<T>::message_on_stack(msg);
232
3
            inner
233
3
                .senders
234
3
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
3
            inner.receivers.notify();
236
3
            drop(inner);
237
3
238
3
            // Block the current thread.
239
3
            let sel = cx.wait_until(deadline);
240
3
241
3
            match sel {
242
3
                Selected::Waiting => 
unreachable!()0
,
243
                Selected::Aborted => {
244
0
                    self.inner.lock().senders.unregister(oper).unwrap();
245
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
0
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
0
                    self.inner.lock().senders.unregister(oper).unwrap();
250
0
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
0
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
3
                    packet.wait_ready();
256
3
                    Ok(())
257
                }
258
            }
259
3
        })
260
2.09M
    }
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::send
Line
Count
Source
206
155k
    pub(crate) fn send(
207
155k
        &self,
208
155k
        msg: T,
209
155k
        deadline: Option<Instant>,
210
155k
    ) -> Result<(), SendTimeoutError<T>> {
211
155k
        let token = &mut Token::default();
212
155k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
155k
        if let Some(
operation77.3k
) = inner.receivers.try_select() {
216
77.3k
            token.zero = operation.packet;
217
77.3k
            drop(inner);
218
77.3k
            unsafe {
219
77.3k
                self.write(token, msg).ok().unwrap();
220
77.3k
            }
221
77.3k
            return Ok(());
222
77.7k
        }
223
77.7k
224
77.7k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
77.7k
        }
227
77.7k
228
77.7k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
77.7k
        })
260
155k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::send
Line
Count
Source
206
12
    pub(crate) fn send(
207
12
        &self,
208
12
        msg: T,
209
12
        deadline: Option<Instant>,
210
12
    ) -> Result<(), SendTimeoutError<T>> {
211
12
        let token = &mut Token::default();
212
12
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
12
        if let Some(
operation4
) = inner.receivers.try_select() {
216
4
            token.zero = operation.packet;
217
4
            drop(inner);
218
4
            unsafe {
219
4
                self.write(token, msg).ok().unwrap();
220
4
            }
221
4
            return Ok(());
222
8
        }
223
8
224
8
        if inner.is_disconnected {
225
1
            return Err(SendTimeoutError::Disconnected(msg));
226
7
        }
227
7
228
7
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
7
        })
260
12
    }
<crossbeam_channel::flavors::zero::Channel<()>>::send
Line
Count
Source
206
2
    pub(crate) fn send(
207
2
        &self,
208
2
        msg: T,
209
2
        deadline: Option<Instant>,
210
2
    ) -> Result<(), SendTimeoutError<T>> {
211
2
        let token = &mut Token::default();
212
2
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
2
        if let Some(
operation1
) = inner.receivers.try_select() {
216
1
            token.zero = operation.packet;
217
1
            drop(inner);
218
1
            unsafe {
219
1
                self.write(token, msg).ok().unwrap();
220
1
            }
221
1
            return Ok(());
222
1
        }
223
1
224
1
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
1
        }
227
1
228
1
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
1
        })
260
2
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::send
Line
Count
Source
206
1.00k
    pub(crate) fn send(
207
1.00k
        &self,
208
1.00k
        msg: T,
209
1.00k
        deadline: Option<Instant>,
210
1.00k
    ) -> Result<(), SendTimeoutError<T>> {
211
1.00k
        let token = &mut Token::default();
212
1.00k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
1.00k
        if let Some(
operation493
) = inner.receivers.try_select() {
216
493
            token.zero = operation.packet;
217
493
            drop(inner);
218
493
            unsafe {
219
493
                self.write(token, msg).ok().unwrap();
220
493
            }
221
493
            return Ok(());
222
507
        }
223
507
224
507
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
507
        }
227
507
228
507
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
507
        })
260
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::send
Line
Count
Source
206
223k
    pub(crate) fn send(
207
223k
        &self,
208
223k
        msg: T,
209
223k
        deadline: Option<Instant>,
210
223k
    ) -> Result<(), SendTimeoutError<T>> {
211
223k
        let token = &mut Token::default();
212
223k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
223k
        if let Some(
operation110k
) = inner.receivers.try_select() {
216
110k
            token.zero = operation.packet;
217
110k
            drop(inner);
218
110k
            unsafe {
219
110k
                self.write(token, msg).ok().unwrap();
220
110k
            }
221
110k
            return Ok(());
222
113k
        }
223
113k
224
113k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
113k
        }
227
113k
228
113k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
113k
        })
260
223k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::send
Line
Count
Source
206
19.9k
    pub(crate) fn send(
207
19.9k
        &self,
208
19.9k
        msg: T,
209
19.9k
        deadline: Option<Instant>,
210
19.9k
    ) -> Result<(), SendTimeoutError<T>> {
211
19.9k
        let token = &mut Token::default();
212
19.9k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
19.9k
        if let Some(
operation422
) = inner.receivers.try_select() {
216
422
            token.zero = operation.packet;
217
422
            drop(inner);
218
422
            unsafe {
219
422
                self.write(token, msg).ok().unwrap();
220
422
            }
221
422
            return Ok(());
222
19.5k
        }
223
19.5k
224
19.5k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
19.5k
        }
227
19.5k
228
19.5k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
19.5k
        })
260
19.9k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::send
Line
Count
Source
206
2
    pub(crate) fn send(
207
2
        &self,
208
2
        msg: T,
209
2
        deadline: Option<Instant>,
210
2
    ) -> Result<(), SendTimeoutError<T>> {
211
2
        let token = &mut Token::default();
212
2
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
2
        if let Some(operation) = inner.receivers.try_select() {
216
2
            token.zero = operation.packet;
217
2
            drop(inner);
218
2
            unsafe {
219
2
                self.write(token, msg).ok().unwrap();
220
2
            }
221
2
            return Ok(());
222
0
        }
223
0
224
0
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
0
        }
227
0
228
0
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
0
        })
260
2
    }
<crossbeam_channel::flavors::zero::Channel<()>>::send
Line
Count
Source
206
795k
    pub(crate) fn send(
207
795k
        &self,
208
795k
        msg: T,
209
795k
        deadline: Option<Instant>,
210
795k
    ) -> Result<(), SendTimeoutError<T>> {
211
795k
        let token = &mut Token::default();
212
795k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
795k
        if let Some(
operation764k
) = inner.receivers.try_select() {
216
764k
            token.zero = operation.packet;
217
764k
            drop(inner);
218
764k
            unsafe {
219
764k
                self.write(token, msg).ok().unwrap();
220
764k
            }
221
764k
            return Ok(());
222
31.1k
        }
223
31.1k
224
31.1k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
31.1k
        }
227
31.1k
228
31.1k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
31.1k
        })
260
795k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::send
Line
Count
Source
206
34.7k
    pub(crate) fn send(
207
34.7k
        &self,
208
34.7k
        msg: T,
209
34.7k
        deadline: Option<Instant>,
210
34.7k
    ) -> Result<(), SendTimeoutError<T>> {
211
34.7k
        let token = &mut Token::default();
212
34.7k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
34.7k
        if let Some(
operation13.8k
) = inner.receivers.try_select() {
216
13.8k
            token.zero = operation.packet;
217
13.8k
            drop(inner);
218
13.8k
            unsafe {
219
13.8k
                self.write(token, msg).ok().unwrap();
220
13.8k
            }
221
13.8k
            return Ok(());
222
20.8k
        }
223
20.8k
224
20.8k
        if inner.is_disconnected {
225
7
            return Err(SendTimeoutError::Disconnected(msg));
226
20.7k
        }
227
20.7k
228
20.7k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
20.7k
        })
260
34.6k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::send
<crossbeam_channel::flavors::zero::Channel<()>>::send
Line
Count
Source
206
105
    pub(crate) fn send(
207
105
        &self,
208
105
        msg: T,
209
105
        deadline: Option<Instant>,
210
105
    ) -> Result<(), SendTimeoutError<T>> {
211
105
        let token = &mut Token::default();
212
105
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
105
        if let Some(
operation5
) = inner.receivers.try_select() {
216
5
            token.zero = operation.packet;
217
5
            drop(inner);
218
5
            unsafe {
219
5
                self.write(token, msg).ok().unwrap();
220
5
            }
221
5
            return Ok(());
222
100
        }
223
100
224
100
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
100
        }
227
100
228
100
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
100
        })
260
105
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::send
Line
Count
Source
206
13
    pub(crate) fn send(
207
13
        &self,
208
13
        msg: T,
209
13
        deadline: Option<Instant>,
210
13
    ) -> Result<(), SendTimeoutError<T>> {
211
13
        let token = &mut Token::default();
212
13
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
13
        if let Some(
operation7
) = inner.receivers.try_select() {
216
7
            token.zero = operation.packet;
217
7
            drop(inner);
218
7
            unsafe {
219
7
                self.write(token, msg).ok().unwrap();
220
7
            }
221
7
            return Ok(());
222
6
        }
223
6
224
6
        if inner.is_disconnected {
225
1
            return Err(SendTimeoutError::Disconnected(msg));
226
5
        }
227
5
228
5
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
5
        })
260
13
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::send
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<u8>>::send
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::send
Line
Count
Source
206
1
    pub(crate) fn send(
207
1
        &self,
208
1
        msg: T,
209
1
        deadline: Option<Instant>,
210
1
    ) -> Result<(), SendTimeoutError<T>> {
211
1
        let token = &mut Token::default();
212
1
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
1
        if let Some(
operation0
) = inner.receivers.try_select() {
216
0
            token.zero = operation.packet;
217
0
            drop(inner);
218
0
            unsafe {
219
0
                self.write(token, msg).ok().unwrap();
220
0
            }
221
0
            return Ok(());
222
1
        }
223
1
224
1
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
1
        }
227
1
228
1
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
1
        })
260
1
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::send
<crossbeam_channel::flavors::zero::Channel<i64>>::send
Line
Count
Source
206
1
    pub(crate) fn send(
207
1
        &self,
208
1
        msg: T,
209
1
        deadline: Option<Instant>,
210
1
    ) -> Result<(), SendTimeoutError<T>> {
211
1
        let token = &mut Token::default();
212
1
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
1
        if let Some(
operation0
) = inner.receivers.try_select() {
216
0
            token.zero = operation.packet;
217
0
            drop(inner);
218
0
            unsafe {
219
0
                self.write(token, msg).ok().unwrap();
220
0
            }
221
0
            return Ok(());
222
1
        }
223
1
224
1
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
1
        }
227
1
228
1
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
1
        })
260
1
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::send
Line
Count
Source
206
30.2k
    pub(crate) fn send(
207
30.2k
        &self,
208
30.2k
        msg: T,
209
30.2k
        deadline: Option<Instant>,
210
30.2k
    ) -> Result<(), SendTimeoutError<T>> {
211
30.2k
        let token = &mut Token::default();
212
30.2k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
30.2k
        if let Some(
operation12.4k
) = inner.receivers.try_select() {
216
12.4k
            token.zero = operation.packet;
217
12.4k
            drop(inner);
218
12.4k
            unsafe {
219
12.4k
                self.write(token, msg).ok().unwrap();
220
12.4k
            }
221
12.4k
            return Ok(());
222
17.8k
        }
223
17.8k
224
17.8k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
17.8k
        }
227
17.8k
228
17.8k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
17.8k
        })
260
30.2k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any>>>::send
<crossbeam_channel::flavors::zero::Channel<bool>>::send
Line
Count
Source
206
325
    pub(crate) fn send(
207
325
        &self,
208
325
        msg: T,
209
325
        deadline: Option<Instant>,
210
325
    ) -> Result<(), SendTimeoutError<T>> {
211
325
        let token = &mut Token::default();
212
325
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
325
        if let Some(
operation123
) = inner.receivers.try_select() {
216
123
            token.zero = operation.packet;
217
123
            drop(inner);
218
123
            unsafe {
219
123
                self.write(token, msg).ok().unwrap();
220
123
            }
221
123
            return Ok(());
222
202
        }
223
202
224
202
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
202
        }
227
202
228
202
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
202
        })
260
325
    }
<crossbeam_channel::flavors::zero::Channel<()>>::send
Line
Count
Source
206
792k
    pub(crate) fn send(
207
792k
        &self,
208
792k
        msg: T,
209
792k
        deadline: Option<Instant>,
210
792k
    ) -> Result<(), SendTimeoutError<T>> {
211
792k
        let token = &mut Token::default();
212
792k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
792k
        if let Some(
operation683k
) = inner.receivers.try_select() {
216
683k
            token.zero = operation.packet;
217
683k
            drop(inner);
218
683k
            unsafe {
219
683k
                self.write(token, msg).ok().unwrap();
220
683k
            }
221
683k
            return Ok(());
222
108k
        }
223
108k
224
108k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
108k
        }
227
108k
228
108k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
108k
        })
260
792k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::send
Line
Count
Source
206
10.0k
    pub(crate) fn send(
207
10.0k
        &self,
208
10.0k
        msg: T,
209
10.0k
        deadline: Option<Instant>,
210
10.0k
    ) -> Result<(), SendTimeoutError<T>> {
211
10.0k
        let token = &mut Token::default();
212
10.0k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
10.0k
        if let Some(
operation57
) = inner.receivers.try_select() {
216
57
            token.zero = operation.packet;
217
57
            drop(inner);
218
57
            unsafe {
219
57
                self.write(token, msg).ok().unwrap();
220
57
            }
221
57
            return Ok(());
222
9.94k
        }
223
9.94k
224
9.94k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
9.94k
        }
227
9.94k
228
9.94k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
9.94k
        })
260
10.0k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::send
Line
Count
Source
206
2
    pub(crate) fn send(
207
2
        &self,
208
2
        msg: T,
209
2
        deadline: Option<Instant>,
210
2
    ) -> Result<(), SendTimeoutError<T>> {
211
2
        let token = &mut Token::default();
212
2
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
2
        if let Some(operation) = inner.receivers.try_select() {
216
2
            token.zero = operation.packet;
217
2
            drop(inner);
218
2
            unsafe {
219
2
                self.write(token, msg).ok().unwrap();
220
2
            }
221
2
            return Ok(());
222
0
        }
223
0
224
0
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
0
        }
227
0
228
0
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
0
        })
260
2
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::send
Line
Count
Source
206
2
    pub(crate) fn send(
207
2
        &self,
208
2
        msg: T,
209
2
        deadline: Option<Instant>,
210
2
    ) -> Result<(), SendTimeoutError<T>> {
211
2
        let token = &mut Token::default();
212
2
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
2
        if let Some(
operation0
) = inner.receivers.try_select() {
216
0
            token.zero = operation.packet;
217
0
            drop(inner);
218
0
            unsafe {
219
0
                self.write(token, msg).ok().unwrap();
220
0
            }
221
0
            return Ok(());
222
2
        }
223
2
224
2
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
2
        }
227
2
228
2
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
2
        })
260
2
    }
<crossbeam_channel::flavors::zero::Channel<()>>::send
Line
Count
Source
206
20.0k
    pub(crate) fn send(
207
20.0k
        &self,
208
20.0k
        msg: T,
209
20.0k
        deadline: Option<Instant>,
210
20.0k
    ) -> Result<(), SendTimeoutError<T>> {
211
20.0k
        let token = &mut Token::default();
212
20.0k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
20.0k
        if let Some(
operation19.9k
) = inner.receivers.try_select() {
216
19.9k
            token.zero = operation.packet;
217
19.9k
            drop(inner);
218
19.9k
            unsafe {
219
19.9k
                self.write(token, msg).ok().unwrap();
220
19.9k
            }
221
19.9k
            return Ok(());
222
3
        }
223
3
224
3
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
3
        }
227
3
228
3
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
3
        })
260
20.0k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::send
Line
Count
Source
206
10.0k
    pub(crate) fn send(
207
10.0k
        &self,
208
10.0k
        msg: T,
209
10.0k
        deadline: Option<Instant>,
210
10.0k
    ) -> Result<(), SendTimeoutError<T>> {
211
10.0k
        let token = &mut Token::default();
212
10.0k
        let mut inner = self.inner.lock();
213
214
        // If there's a waiting receiver, pair up with it.
215
10.0k
        if let Some(
operation0
) = inner.receivers.try_select() {
216
0
            token.zero = operation.packet;
217
0
            drop(inner);
218
0
            unsafe {
219
0
                self.write(token, msg).ok().unwrap();
220
0
            }
221
0
            return Ok(());
222
10.0k
        }
223
10.0k
224
10.0k
        if inner.is_disconnected {
225
0
            return Err(SendTimeoutError::Disconnected(msg));
226
10.0k
        }
227
10.0k
228
10.0k
        Context::with(|cx| {
229
            // Prepare for blocking until a receiver wakes us up.
230
            let oper = Operation::hook(token);
231
            let packet = Packet::<T>::message_on_stack(msg);
232
            inner
233
                .senders
234
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
235
            inner.receivers.notify();
236
            drop(inner);
237
238
            // Block the current thread.
239
            let sel = cx.wait_until(deadline);
240
241
            match sel {
242
                Selected::Waiting => unreachable!(),
243
                Selected::Aborted => {
244
                    self.inner.lock().senders.unregister(oper).unwrap();
245
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
246
                    Err(SendTimeoutError::Timeout(msg))
247
                }
248
                Selected::Disconnected => {
249
                    self.inner.lock().senders.unregister(oper).unwrap();
250
                    let msg = unsafe { packet.msg.get().replace(None).unwrap() };
251
                    Err(SendTimeoutError::Disconnected(msg))
252
                }
253
                Selected::Operation(_) => {
254
                    // Wait until the message is read, then drop the packet.
255
                    packet.wait_ready();
256
                    Ok(())
257
                }
258
            }
259
10.0k
        })
260
10.0k
    }
261
262
    /// Attempts to receive a message without blocking.
263
69.4M
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
69.4M
        let token = &mut Token::default();
265
69.4M
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
18.4E
        if let Some(operation) = 
inner.senders.try_select()69.4M
{
269
18.4E
            token.zero = operation.packet;
270
18.4E
            drop(inner);
271
18.4E
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
70.3M
        } else if inner.is_disconnected {
273
27
            Err(TryRecvError::Disconnected)
274
        } else {
275
70.3M
            Err(TryRecvError::Empty)
276
        }
277
69.4M
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::try_recv
Line
Count
Source
263
3.39k
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
3.39k
        let token = &mut Token::default();
265
3.39k
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
3.39k
        if let Some(
operation1.00k
) = inner.senders.try_select() {
269
1.00k
            token.zero = operation.packet;
270
1.00k
            drop(inner);
271
1.00k
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
2.39k
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
2.39k
            Err(TryRecvError::Empty)
276
        }
277
3.39k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Line
Count
Source
263
4
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
4
        let token = &mut Token::default();
265
4
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
4
        if let Some(
operation1
) = inner.senders.try_select() {
269
1
            token.zero = operation.packet;
270
1
            drop(inner);
271
1
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
3
        } else if inner.is_disconnected {
273
1
            Err(TryRecvError::Disconnected)
274
        } else {
275
2
            Err(TryRecvError::Empty)
276
        }
277
4
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Line
Count
Source
263
2.53M
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
2.53M
        let token = &mut Token::default();
265
2.53M
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
2.53M
        if let Some(
operation18
) = inner.senders.try_select() {
269
18
            token.zero = operation.packet;
270
18
            drop(inner);
271
18
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
2.53M
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
2.53M
            Err(TryRecvError::Empty)
276
        }
277
2.53M
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::try_recv
Line
Count
Source
263
4
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
4
        let token = &mut Token::default();
265
4
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
4
        if let Some(
operation0
) = inner.senders.try_select() {
269
0
            token.zero = operation.packet;
270
0
            drop(inner);
271
0
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
4
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
4
            Err(TryRecvError::Empty)
276
        }
277
4
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::try_recv
<crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Line
Count
Source
263
5
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
5
        let token = &mut Token::default();
265
5
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
5
        if let Some(
operation0
) = inner.senders.try_select() {
269
0
            token.zero = operation.packet;
270
0
            drop(inner);
271
0
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
5
        } else if inner.is_disconnected {
273
3
            Err(TryRecvError::Disconnected)
274
        } else {
275
2
            Err(TryRecvError::Empty)
276
        }
277
5
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::try_recv
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::try_recv
Line
Count
Source
263
3
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
3
        let token = &mut Token::default();
265
3
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
3
        if let Some(
operation1
) = inner.senders.try_select() {
269
1
            token.zero = operation.packet;
270
1
            drop(inner);
271
1
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
2
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
2
            Err(TryRecvError::Empty)
276
        }
277
3
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::try_recv
Line
Count
Source
263
3
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
3
        let token = &mut Token::default();
265
3
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
3
        if let Some(
operation1
) = inner.senders.try_select() {
269
1
            token.zero = operation.packet;
270
1
            drop(inner);
271
1
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
2
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
2
            Err(TryRecvError::Empty)
276
        }
277
3
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Line
Count
Source
263
7
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
7
        let token = &mut Token::default();
265
7
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
7
        if let Some(
operation1
) = inner.senders.try_select() {
269
1
            token.zero = operation.packet;
270
1
            drop(inner);
271
1
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
6
        } else if inner.is_disconnected {
273
1
            Err(TryRecvError::Disconnected)
274
        } else {
275
5
            Err(TryRecvError::Empty)
276
        }
277
7
    }
<crossbeam_channel::flavors::zero::Channel<i64>>::try_recv
Line
Count
Source
263
3
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
3
        let token = &mut Token::default();
265
3
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
3
        if let Some(
operation1
) = inner.senders.try_select() {
269
1
            token.zero = operation.packet;
270
1
            drop(inner);
271
1
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
2
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
2
            Err(TryRecvError::Empty)
276
        }
277
3
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::try_recv
Line
Count
Source
263
2
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
2
        let token = &mut Token::default();
265
2
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
2
        if let Some(
operation0
) = inner.senders.try_select() {
269
0
            token.zero = operation.packet;
270
0
            drop(inner);
271
0
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
2
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
2
            Err(TryRecvError::Empty)
276
        }
277
2
    }
<crossbeam_channel::flavors::zero::Channel<()>>::try_recv
Line
Count
Source
263
34.5M
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
34.5M
        let token = &mut Token::default();
265
34.5M
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
18.4E
        if let Some(operation) = 
inner.senders.try_select()34.5M
{
269
18.4E
            token.zero = operation.packet;
270
18.4E
            drop(inner);
271
18.4E
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
35.5M
        } else if inner.is_disconnected {
273
20
            Err(TryRecvError::Disconnected)
274
        } else {
275
35.5M
            Err(TryRecvError::Empty)
276
        }
277
34.5M
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Line
Count
Source
263
32.2M
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
32.2M
        let token = &mut Token::default();
265
32.2M
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
32.2M
        if let Some(
operation19
) = inner.senders.try_select() {
269
19
            token.zero = operation.packet;
270
19
            drop(inner);
271
19
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
32.2M
        } else if inner.is_disconnected {
273
2
            Err(TryRecvError::Disconnected)
274
        } else {
275
32.2M
            Err(TryRecvError::Empty)
276
        }
277
32.2M
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::try_recv
Line
Count
Source
263
2
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
2
        let token = &mut Token::default();
265
2
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
2
        if let Some(operation) = inner.senders.try_select() {
269
2
            token.zero = operation.packet;
270
2
            drop(inner);
271
2
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
0
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
0
            Err(TryRecvError::Empty)
276
        }
277
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::try_recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::try_recv
<crossbeam_channel::flavors::zero::Channel<()>>::try_recv
Line
Count
Source
263
16.2k
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
16.2k
        let token = &mut Token::default();
265
16.2k
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
16.2k
        if let Some(operation) = inner.senders.try_select() {
269
16.2k
            token.zero = operation.packet;
270
16.2k
            drop(inner);
271
16.2k
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
0
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
0
            Err(TryRecvError::Empty)
276
        }
277
16.2k
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::try_recv
Line
Count
Source
263
10.0k
    pub(crate) fn try_recv(&self) -> Result<T, TryRecvError> {
264
10.0k
        let token = &mut Token::default();
265
10.0k
        let mut inner = self.inner.lock();
266
267
        // If there's a waiting sender, pair up with it.
268
10.0k
        if let Some(operation) = inner.senders.try_select() {
269
10.0k
            token.zero = operation.packet;
270
10.0k
            drop(inner);
271
10.0k
            unsafe { self.read(token).map_err(|_| TryRecvError::Disconnected) }
272
0
        } else if inner.is_disconnected {
273
0
            Err(TryRecvError::Disconnected)
274
        } else {
275
0
            Err(TryRecvError::Empty)
276
        }
277
10.0k
    }
278
279
    /// Receives a message from the channel.
280
2.17M
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
2.17M
        let token = &mut Token::default();
282
2.17M
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
2.17M
        if let Some(
operation358k
) = inner.senders.try_select() {
286
358k
            token.zero = operation.packet;
287
358k
            drop(inner);
288
358k
            unsafe {
289
358k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
1.81M
        }
292
1.81M
293
1.81M
        if inner.is_disconnected {
294
13
            return Err(RecvTimeoutError::Disconnected);
295
1.81M
        }
296
1.81M
297
1.81M
        Context::with(|cx| {
298
1.81M
            // Prepare for blocking until a sender wakes us up.
299
1.81M
            let oper = Operation::hook(token);
300
1.81M
            let packet = Packet::<T>::empty_on_stack();
301
1.81M
            inner
302
1.81M
                .receivers
303
1.81M
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
1.81M
            inner.senders.notify();
305
1.81M
            drop(inner);
306
1.81M
307
1.81M
            // Block the current thread.
308
1.81M
            let sel = cx.wait_until(deadline);
309
1.81M
310
1.81M
            match sel {
311
1.81M
                Selected::Waiting => 
unreachable!()23.4k
,
312
                Selected::Aborted => {
313
2
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
2
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
13
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
13
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
1.79M
                    packet.wait_ready();
323
1.79M
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1.81M
        
}1.79M
)
<crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Line
Count
Source
297
7
        Context::with(|cx| {
298
7
            // Prepare for blocking until a sender wakes us up.
299
7
            let oper = Operation::hook(token);
300
7
            let packet = Packet::<T>::empty_on_stack();
301
7
            inner
302
7
                .receivers
303
7
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
7
            inner.senders.notify();
305
7
            drop(inner);
306
7
307
7
            // Block the current thread.
308
7
            let sel = cx.wait_until(deadline);
309
7
310
7
            match sel {
311
7
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
1
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
1
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
1
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
1
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
5
                    packet.wait_ready();
323
5
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
7
        })
<crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Line
Count
Source
297
1.00k
        Context::with(|cx| {
298
1.00k
            // Prepare for blocking until a sender wakes us up.
299
1.00k
            let oper = Operation::hook(token);
300
1.00k
            let packet = Packet::<T>::empty_on_stack();
301
1.00k
            inner
302
1.00k
                .receivers
303
1.00k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
1.00k
            inner.senders.notify();
305
1.00k
            drop(inner);
306
1.00k
307
1.00k
            // Block the current thread.
308
1.00k
            let sel = cx.wait_until(deadline);
309
1.00k
310
1.00k
            match sel {
311
1.00k
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
2
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
2
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
1.00k
                    packet.wait_ready();
323
1.00k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1.00k
        })
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv::{closure#1}
Line
Count
Source
297
493
        Context::with(|cx| {
298
493
            // Prepare for blocking until a sender wakes us up.
299
493
            let oper = Operation::hook(token);
300
493
            let packet = Packet::<T>::empty_on_stack();
301
493
            inner
302
493
                .receivers
303
493
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
493
            inner.senders.notify();
305
493
            drop(inner);
306
493
307
493
            // Block the current thread.
308
493
            let sel = cx.wait_until(deadline);
309
493
310
493
            match sel {
311
493
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
493
                    packet.wait_ready();
323
493
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
493
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
Line
Count
Source
297
111k
        Context::with(|cx| {
298
111k
            // Prepare for blocking until a sender wakes us up.
299
111k
            let oper = Operation::hook(token);
300
111k
            let packet = Packet::<T>::empty_on_stack();
301
111k
            inner
302
111k
                .receivers
303
111k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
111k
            inner.senders.notify();
305
111k
            drop(inner);
306
111k
307
111k
            // Block the current thread.
308
111k
            let sel = cx.wait_until(deadline);
309
111k
310
111k
            match sel {
311
111k
                Selected::Waiting => 
unreachable!()671
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
1
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
1
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
111k
                    packet.wait_ready();
323
111k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
111k
        })
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::recv::{closure#1}
Line
Count
Source
297
77.3k
        Context::with(|cx| {
298
77.3k
            // Prepare for blocking until a sender wakes us up.
299
77.3k
            let oper = Operation::hook(token);
300
77.3k
            let packet = Packet::<T>::empty_on_stack();
301
77.3k
            inner
302
77.3k
                .receivers
303
77.3k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
77.3k
            inner.senders.notify();
305
77.3k
            drop(inner);
306
77.3k
307
77.3k
            // Block the current thread.
308
77.3k
            let sel = cx.wait_until(deadline);
309
77.3k
310
77.3k
            match sel {
311
77.3k
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
77.3k
                    packet.wait_ready();
323
77.3k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
77.3k
        })
<crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Line
Count
Source
297
1
        Context::with(|cx| {
298
1
            // Prepare for blocking until a sender wakes us up.
299
1
            let oper = Operation::hook(token);
300
1
            let packet = Packet::<T>::empty_on_stack();
301
1
            inner
302
1
                .receivers
303
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
1
            inner.senders.notify();
305
1
            drop(inner);
306
1
307
1
            // Block the current thread.
308
1
            let sel = cx.wait_until(deadline);
309
1
310
1
            match sel {
311
1
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
1
                    packet.wait_ready();
323
1
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
Line
Count
Source
297
39.7k
        Context::with(|cx| {
298
39.7k
            // Prepare for blocking until a sender wakes us up.
299
39.7k
            let oper = Operation::hook(token);
300
39.7k
            let packet = Packet::<T>::empty_on_stack();
301
39.7k
            inner
302
39.7k
                .receivers
303
39.7k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
39.7k
            inner.senders.notify();
305
39.7k
            drop(inner);
306
39.7k
307
39.7k
            // Block the current thread.
308
39.7k
            let sel = cx.wait_until(deadline);
309
39.7k
310
39.7k
            match sel {
311
39.7k
                Selected::Waiting => 
unreachable!()148
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
39.5k
                    packet.wait_ready();
323
39.5k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
39.5k
        })
<crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Line
Count
Source
297
767k
        Context::with(|cx| {
298
767k
            // Prepare for blocking until a sender wakes us up.
299
767k
            let oper = Operation::hook(token);
300
767k
            let packet = Packet::<T>::empty_on_stack();
301
767k
            inner
302
767k
                .receivers
303
767k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
767k
            inner.senders.notify();
305
767k
            drop(inner);
306
767k
307
767k
            // Block the current thread.
308
767k
            let sel = cx.wait_until(deadline);
309
767k
310
767k
            match sel {
311
767k
                Selected::Waiting => 
unreachable!()13.3k
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
754k
                    packet.wait_ready();
323
754k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
754k
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
<crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Line
Count
Source
297
14.5k
        Context::with(|cx| {
298
14.5k
            // Prepare for blocking until a sender wakes us up.
299
14.5k
            let oper = Operation::hook(token);
300
14.5k
            let packet = Packet::<T>::empty_on_stack();
301
14.5k
            inner
302
14.5k
                .receivers
303
14.5k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
14.5k
            inner.senders.notify();
305
14.5k
            drop(inner);
306
14.5k
307
14.5k
            // Block the current thread.
308
14.5k
            let sel = cx.wait_until(deadline);
309
14.5k
310
14.5k
            match sel {
311
14.5k
                Selected::Waiting => 
unreachable!()9
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
5
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
5
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
14.5k
                    packet.wait_ready();
323
14.5k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
14.5k
        })
<crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Line
Count
Source
297
5
        Context::with(|cx| {
298
5
            // Prepare for blocking until a sender wakes us up.
299
5
            let oper = Operation::hook(token);
300
5
            let packet = Packet::<T>::empty_on_stack();
301
5
            inner
302
5
                .receivers
303
5
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
5
            inner.senders.notify();
305
5
            drop(inner);
306
5
307
5
            // Block the current thread.
308
5
            let sel = cx.wait_until(deadline);
309
5
310
5
            match sel {
311
5
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
5
                    packet.wait_ready();
323
5
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
5
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::recv::{closure#1}
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::recv::{closure#1}
Line
Count
Source
297
7
        Context::with(|cx| {
298
7
            // Prepare for blocking until a sender wakes us up.
299
7
            let oper = Operation::hook(token);
300
7
            let packet = Packet::<T>::empty_on_stack();
301
7
            inner
302
7
                .receivers
303
7
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
7
            inner.senders.notify();
305
7
            drop(inner);
306
7
307
7
            // Block the current thread.
308
7
            let sel = cx.wait_until(deadline);
309
7
310
7
            match sel {
311
7
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
7
                    packet.wait_ready();
323
7
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
7
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::recv::{closure#1}
<crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Line
Count
Source
297
23.4k
        Context::with(|cx| {
298
23.4k
            // Prepare for blocking until a sender wakes us up.
299
23.4k
            let oper = Operation::hook(token);
300
23.4k
            let packet = Packet::<T>::empty_on_stack();
301
23.4k
            inner
302
23.4k
                .receivers
303
23.4k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
23.4k
            inner.senders.notify();
305
23.4k
            drop(inner);
306
23.4k
307
23.4k
            // Block the current thread.
308
23.4k
            let sel = cx.wait_until(deadline);
309
23.4k
310
23.4k
            match sel {
311
23.4k
                Selected::Waiting => 
unreachable!()52
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
3
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
3
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
23.4k
                    packet.wait_ready();
323
23.4k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
23.4k
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv::{closure#1}
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::recv::{closure#1}
Line
Count
Source
297
1
        Context::with(|cx| {
298
1
            // Prepare for blocking until a sender wakes us up.
299
1
            let oper = Operation::hook(token);
300
1
            let packet = Packet::<T>::empty_on_stack();
301
1
            inner
302
1
                .receivers
303
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
1
            inner.senders.notify();
305
1
            drop(inner);
306
1
307
1
            // Block the current thread.
308
1
            let sel = cx.wait_until(deadline);
309
1
310
1
            match sel {
311
1
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
1
                    packet.wait_ready();
323
1
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
<crossbeam_channel::flavors::zero::Channel<i64>>::recv::{closure#1}
Line
Count
Source
297
1
        Context::with(|cx| {
298
1
            // Prepare for blocking until a sender wakes us up.
299
1
            let oper = Operation::hook(token);
300
1
            let packet = Packet::<T>::empty_on_stack();
301
1
            inner
302
1
                .receivers
303
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
1
            inner.senders.notify();
305
1
            drop(inner);
306
1
307
1
            // Block the current thread.
308
1
            let sel = cx.wait_until(deadline);
309
1
310
1
            match sel {
311
1
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
1
                    packet.wait_ready();
323
1
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<u32>>::recv::{closure#1}
<crossbeam_channel::flavors::zero::Channel<u8>>::recv::{closure#1}
Line
Count
Source
297
9.50k
        Context::with(|cx| {
298
9.50k
            // Prepare for blocking until a sender wakes us up.
299
9.50k
            let oper = Operation::hook(token);
300
9.50k
            let packet = Packet::<T>::empty_on_stack();
301
9.50k
            inner
302
9.50k
                .receivers
303
9.50k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
9.50k
            inner.senders.notify();
305
9.50k
            drop(inner);
306
9.50k
307
9.50k
            // Block the current thread.
308
9.50k
            let sel = cx.wait_until(deadline);
309
9.50k
310
9.50k
            match sel {
311
9.50k
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
9.50k
                    packet.wait_ready();
323
9.50k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
9.50k
        })
<crossbeam_channel::flavors::zero::Channel<bool>>::recv::{closure#1}
Line
Count
Source
297
124
        Context::with(|cx| {
298
124
            // Prepare for blocking until a sender wakes us up.
299
124
            let oper = Operation::hook(token);
300
124
            let packet = Packet::<T>::empty_on_stack();
301
124
            inner
302
124
                .receivers
303
124
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
124
            inner.senders.notify();
305
124
            drop(inner);
306
124
307
124
            // Block the current thread.
308
124
            let sel = cx.wait_until(deadline);
309
124
310
124
            match sel {
311
124
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
124
                    packet.wait_ready();
323
124
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
124
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
Line
Count
Source
297
29.8k
        Context::with(|cx| {
298
29.8k
            // Prepare for blocking until a sender wakes us up.
299
29.8k
            let oper = Operation::hook(token);
300
29.8k
            let packet = Packet::<T>::empty_on_stack();
301
29.8k
            inner
302
29.8k
                .receivers
303
29.8k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
29.8k
            inner.senders.notify();
305
29.8k
            drop(inner);
306
29.8k
307
29.8k
            // Block the current thread.
308
29.8k
            let sel = cx.wait_until(deadline);
309
29.8k
310
29.8k
            match sel {
311
29.8k
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
29.8k
                    packet.wait_ready();
323
29.8k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
29.8k
        })
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv::{closure#1}
Line
Count
Source
297
832
        Context::with(|cx| {
298
832
            // Prepare for blocking until a sender wakes us up.
299
832
            let oper = Operation::hook(token);
300
832
            let packet = Packet::<T>::empty_on_stack();
301
832
            inner
302
832
                .receivers
303
832
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
832
            inner.senders.notify();
305
832
            drop(inner);
306
832
307
832
            // Block the current thread.
308
832
            let sel = cx.wait_until(deadline);
309
832
310
832
            match sel {
311
832
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
832
                    packet.wait_ready();
323
832
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
832
        })
<crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Line
Count
Source
297
7
        Context::with(|cx| {
298
7
            // Prepare for blocking until a sender wakes us up.
299
7
            let oper = Operation::hook(token);
300
7
            let packet = Packet::<T>::empty_on_stack();
301
7
            inner
302
7
                .receivers
303
7
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
7
            inner.senders.notify();
305
7
            drop(inner);
306
7
307
7
            // Block the current thread.
308
7
            let sel = cx.wait_until(deadline);
309
7
310
7
            match sel {
311
7
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
1
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
1
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
6
                    packet.wait_ready();
323
6
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
7
        })
<crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Line
Count
Source
297
689k
        Context::with(|cx| {
298
689k
            // Prepare for blocking until a sender wakes us up.
299
689k
            let oper = Operation::hook(token);
300
689k
            let packet = Packet::<T>::empty_on_stack();
301
689k
            inner
302
689k
                .receivers
303
689k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
689k
            inner.senders.notify();
305
689k
            drop(inner);
306
689k
307
689k
            // Block the current thread.
308
689k
            let sel = cx.wait_until(deadline);
309
689k
310
689k
            match sel {
311
689k
                Selected::Waiting => 
unreachable!()8.91k
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
1
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
1
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
680k
                    packet.wait_ready();
323
680k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
680k
        })
<crossbeam_channel::flavors::zero::Channel<usize>>::recv::{closure#1}
Line
Count
Source
297
29.8k
        Context::with(|cx| {
298
29.8k
            // Prepare for blocking until a sender wakes us up.
299
29.8k
            let oper = Operation::hook(token);
300
29.8k
            let packet = Packet::<T>::empty_on_stack();
301
29.8k
            inner
302
29.8k
                .receivers
303
29.8k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
29.8k
            inner.senders.notify();
305
29.8k
            drop(inner);
306
29.8k
307
29.8k
            // Block the current thread.
308
29.8k
            let sel = cx.wait_until(deadline);
309
29.8k
310
29.8k
            match sel {
311
29.8k
                Selected::Waiting => 
unreachable!()258
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
29.5k
                    packet.wait_ready();
323
29.5k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
29.5k
        })
<crossbeam_channel::flavors::zero::Channel<()>>::recv::{closure#1}
Line
Count
Source
297
19.9k
        Context::with(|cx| {
298
19.9k
            // Prepare for blocking until a sender wakes us up.
299
19.9k
            let oper = Operation::hook(token);
300
19.9k
            let packet = Packet::<T>::empty_on_stack();
301
19.9k
            inner
302
19.9k
                .receivers
303
19.9k
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
19.9k
            inner.senders.notify();
305
19.9k
            drop(inner);
306
19.9k
307
19.9k
            // Block the current thread.
308
19.9k
            let sel = cx.wait_until(deadline);
309
19.9k
310
19.9k
            match sel {
311
19.9k
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
19.9k
                    packet.wait_ready();
323
19.9k
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
19.9k
        })
<crossbeam_channel::flavors::zero::Channel<i32>>::recv::{closure#1}
Line
Count
Source
297
1
        Context::with(|cx| {
298
1
            // Prepare for blocking until a sender wakes us up.
299
1
            let oper = Operation::hook(token);
300
1
            let packet = Packet::<T>::empty_on_stack();
301
1
            inner
302
1
                .receivers
303
1
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
1
            inner.senders.notify();
305
1
            drop(inner);
306
1
307
1
            // Block the current thread.
308
1
            let sel = cx.wait_until(deadline);
309
1
310
1
            match sel {
311
1
                Selected::Waiting => 
unreachable!()0
,
312
                Selected::Aborted => {
313
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
0
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
0
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
0
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
1
                    packet.wait_ready();
323
1
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
327
2.17M
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv
Line
Count
Source
280
1.00k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
1.00k
        let token = &mut Token::default();
282
1.00k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
1.00k
        if let Some(
operation507
) = inner.senders.try_select() {
286
507
            token.zero = operation.packet;
287
507
            drop(inner);
288
507
            unsafe {
289
507
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
493
        }
292
493
293
493
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
493
        }
296
493
297
493
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
493
        })
327
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::recv
Line
Count
Source
280
155k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
155k
        let token = &mut Token::default();
282
155k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
155k
        if let Some(
operation77.7k
) = inner.senders.try_select() {
286
77.7k
            token.zero = operation.packet;
287
77.7k
            drop(inner);
288
77.7k
            unsafe {
289
77.7k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
77.3k
        }
292
77.3k
293
77.3k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
77.3k
        }
296
77.3k
297
77.3k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
77.3k
        })
327
155k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::recv
Line
Count
Source
280
1.00k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
1.00k
        let token = &mut Token::default();
282
1.00k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
1.00k
        if let Some(
operation1
) = inner.senders.try_select() {
286
1
            token.zero = operation.packet;
287
1
            drop(inner);
288
1
            unsafe {
289
1
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
1.00k
        }
292
1.00k
293
1.00k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
1.00k
        }
296
1.00k
297
1.00k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1.00k
        })
327
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::recv
Line
Count
Source
280
13
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
13
        let token = &mut Token::default();
282
13
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
13
        if let Some(
operation5
) = inner.senders.try_select() {
286
5
            token.zero = operation.packet;
287
5
            drop(inner);
288
5
            unsafe {
289
5
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
8
        }
292
8
293
8
        if inner.is_disconnected {
294
1
            return Err(RecvTimeoutError::Disconnected);
295
7
        }
296
7
297
7
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
7
        })
327
13
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::recv
Line
Count
Source
280
222k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
222k
        let token = &mut Token::default();
282
222k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
222k
        if let Some(
operation110k
) = inner.senders.try_select() {
286
110k
            token.zero = operation.packet;
287
110k
            drop(inner);
288
110k
            unsafe {
289
110k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
111k
        }
292
111k
293
111k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
111k
        }
296
111k
297
111k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
111k
        })
327
222k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::recv
Line
Count
Source
280
794k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
794k
        let token = &mut Token::default();
282
794k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
794k
        if let Some(
operation27.3k
) = inner.senders.try_select() {
286
27.3k
            token.zero = operation.packet;
287
27.3k
            drop(inner);
288
27.3k
            unsafe {
289
27.3k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
767k
        }
292
767k
293
767k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
765k
        }
296
765k
297
765k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
765k
        })
327
792k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::recv
Line
Count
Source
280
2
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
2
        let token = &mut Token::default();
282
2
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
2
        if let Some(
operation1
) = inner.senders.try_select() {
286
1
            token.zero = operation.packet;
287
1
            drop(inner);
288
1
            unsafe {
289
1
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
1
        }
292
1
293
1
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
1
        }
296
1
297
1
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
327
2
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::recv
Line
Count
Source
280
39.7k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
39.7k
        let token = &mut Token::default();
282
39.7k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
39.7k
        if let Some(
operation15
) = inner.senders.try_select() {
286
15
            token.zero = operation.packet;
287
15
            drop(inner);
288
15
            unsafe {
289
15
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
39.7k
        }
292
39.7k
293
39.7k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
39.6k
        }
296
39.6k
297
39.6k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
39.6k
        })
327
39.6k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::recv
<crossbeam_channel::flavors::zero::Channel<()>>::recv
Line
Count
Source
280
106
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
106
        let token = &mut Token::default();
282
106
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
106
        if let Some(
operation100
) = inner.senders.try_select() {
286
100
            token.zero = operation.packet;
287
100
            drop(inner);
288
100
            unsafe {
289
100
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
6
        }
292
6
293
6
        if inner.is_disconnected {
294
1
            return Err(RecvTimeoutError::Disconnected);
295
5
        }
296
5
297
5
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
5
        })
327
106
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::recv
Line
Count
Source
280
34.6k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
34.6k
        let token = &mut Token::default();
282
34.6k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
34.6k
        if let Some(
operation20.0k
) = inner.senders.try_select() {
286
20.0k
            token.zero = operation.packet;
287
20.0k
            drop(inner);
288
20.0k
            unsafe {
289
20.0k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
14.5k
        }
292
14.5k
293
14.5k
        if inner.is_disconnected {
294
3
            return Err(RecvTimeoutError::Disconnected);
295
14.5k
        }
296
14.5k
297
14.5k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
14.5k
        })
327
34.6k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::recv
Line
Count
Source
280
12
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
12
        let token = &mut Token::default();
282
12
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
12
        if let Some(
operation4
) = inner.senders.try_select() {
286
4
            token.zero = operation.packet;
287
4
            drop(inner);
288
4
            unsafe {
289
4
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
8
        }
292
8
293
8
        if inner.is_disconnected {
294
1
            return Err(RecvTimeoutError::Disconnected);
295
7
        }
296
7
297
7
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
7
        })
327
12
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::recv
<crossbeam_channel::flavors::zero::Channel<i64>>::recv
Line
Count
Source
280
1
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
1
        let token = &mut Token::default();
282
1
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
1
        if let Some(
operation0
) = inner.senders.try_select() {
286
0
            token.zero = operation.packet;
287
0
            drop(inner);
288
0
            unsafe {
289
0
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
1
        }
292
1
293
1
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
1
        }
296
1
297
1
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
327
1
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::recv
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<u32>>::recv
<crossbeam_channel::flavors::zero::Channel<u8>>::recv
Line
Count
Source
280
10.0k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
10.0k
        let token = &mut Token::default();
282
10.0k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
10.0k
        if let Some(
operation492
) = inner.senders.try_select() {
286
492
            token.zero = operation.packet;
287
492
            drop(inner);
288
492
            unsafe {
289
492
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
9.50k
        }
292
9.50k
293
9.50k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
9.50k
        }
296
9.50k
297
9.50k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
9.50k
        })
327
10.0k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::recv
Line
Count
Source
280
40.3k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
40.3k
        let token = &mut Token::default();
282
40.3k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
40.3k
        if let Some(
operation16.8k
) = inner.senders.try_select() {
286
16.8k
            token.zero = operation.packet;
287
16.8k
            drop(inner);
288
16.8k
            unsafe {
289
16.8k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
23.4k
        }
292
23.4k
293
23.4k
        if inner.is_disconnected {
294
3
            return Err(RecvTimeoutError::Disconnected);
295
23.4k
        }
296
23.4k
297
23.4k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
23.4k
        })
327
40.3k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::recv
Line
Count
Source
280
1
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
1
        let token = &mut Token::default();
282
1
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
1
        if let Some(
operation0
) = inner.senders.try_select() {
286
0
            token.zero = operation.packet;
287
0
            drop(inner);
288
0
            unsafe {
289
0
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
1
        }
292
1
293
1
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
1
        }
296
1
297
1
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
327
1
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::recv
Line
Count
Source
280
324
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
324
        let token = &mut Token::default();
282
324
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
324
        if let Some(
operation200
) = inner.senders.try_select() {
286
200
            token.zero = operation.packet;
287
200
            drop(inner);
288
200
            unsafe {
289
200
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
124
        }
292
124
293
124
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
124
        }
296
124
297
124
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
124
        })
327
324
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::recv
Line
Count
Source
280
30.0k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
30.0k
        let token = &mut Token::default();
282
30.0k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
30.0k
        if let Some(
operation117
) = inner.senders.try_select() {
286
117
            token.zero = operation.packet;
287
117
            drop(inner);
288
117
            unsafe {
289
117
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
29.8k
        }
292
29.8k
293
29.8k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
29.8k
        }
296
29.8k
297
29.8k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
29.8k
        })
327
30.0k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::recv
Line
Count
Source
280
793k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
793k
        let token = &mut Token::default();
282
793k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
793k
        if let Some(
operation104k
) = inner.senders.try_select() {
286
104k
            token.zero = operation.packet;
287
104k
            drop(inner);
288
104k
            unsafe {
289
104k
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
689k
        }
292
689k
293
689k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
687k
        }
296
687k
297
687k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
687k
        })
327
792k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::recv
Line
Count
Source
280
1.00k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
1.00k
        let token = &mut Token::default();
282
1.00k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
1.00k
        if let Some(
operation168
) = inner.senders.try_select() {
286
168
            token.zero = operation.packet;
287
168
            drop(inner);
288
168
            unsafe {
289
168
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
832
        }
292
832
293
832
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
832
        }
296
832
297
832
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
832
        })
327
1.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::recv
Line
Count
Source
280
16
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
16
        let token = &mut Token::default();
282
16
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
16
        if let Some(
operation5
) = inner.senders.try_select() {
286
5
            token.zero = operation.packet;
287
5
            drop(inner);
288
5
            unsafe {
289
5
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
11
        }
292
11
293
11
        if inner.is_disconnected {
294
4
            return Err(RecvTimeoutError::Disconnected);
295
7
        }
296
7
297
7
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
7
        })
327
16
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::recv
Line
Count
Source
280
29.7k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
29.7k
        let token = &mut Token::default();
282
29.7k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
18.4E
        if let Some(operation) = 
inner.senders.try_select()29.7k
{
286
18.4E
            token.zero = operation.packet;
287
18.4E
            drop(inner);
288
18.4E
            unsafe {
289
18.4E
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
29.8k
        }
292
29.8k
293
29.8k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
29.8k
        }
296
29.8k
297
29.8k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
29.8k
        })
327
29.7k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::recv
Line
Count
Source
280
20.0k
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
20.0k
        let token = &mut Token::default();
282
20.0k
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
20.0k
        if let Some(
operation3
) = inner.senders.try_select() {
286
3
            token.zero = operation.packet;
287
3
            drop(inner);
288
3
            unsafe {
289
3
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
19.9k
        }
292
19.9k
293
19.9k
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
19.9k
        }
296
19.9k
297
19.9k
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
19.9k
        })
327
20.0k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::recv
Line
Count
Source
280
2
    pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
281
2
        let token = &mut Token::default();
282
2
        let mut inner = self.inner.lock();
283
284
        // If there's a waiting sender, pair up with it.
285
2
        if let Some(
operation1
) = inner.senders.try_select() {
286
1
            token.zero = operation.packet;
287
1
            drop(inner);
288
1
            unsafe {
289
1
                return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
290
            }
291
1
        }
292
1
293
1
        if inner.is_disconnected {
294
0
            return Err(RecvTimeoutError::Disconnected);
295
1
        }
296
1
297
1
        Context::with(|cx| {
298
            // Prepare for blocking until a sender wakes us up.
299
            let oper = Operation::hook(token);
300
            let packet = Packet::<T>::empty_on_stack();
301
            inner
302
                .receivers
303
                .register_with_packet(oper, &packet as *const Packet<T> as usize, cx);
304
            inner.senders.notify();
305
            drop(inner);
306
307
            // Block the current thread.
308
            let sel = cx.wait_until(deadline);
309
310
            match sel {
311
                Selected::Waiting => unreachable!(),
312
                Selected::Aborted => {
313
                    self.inner.lock().receivers.unregister(oper).unwrap();
314
                    Err(RecvTimeoutError::Timeout)
315
                }
316
                Selected::Disconnected => {
317
                    self.inner.lock().receivers.unregister(oper).unwrap();
318
                    Err(RecvTimeoutError::Disconnected)
319
                }
320
                Selected::Operation(_) => {
321
                    // Wait until the message is provided, then read it.
322
                    packet.wait_ready();
323
                    unsafe { Ok(packet.msg.get().replace(None).unwrap()) }
324
                }
325
            }
326
1
        })
327
2
    }
328
329
    /// Disconnects the channel and wakes up all blocked senders and receivers.
330
    ///
331
    /// Returns `true` if this call disconnected the channel.
332
9.60k
    pub(crate) fn disconnect(&self) -> bool {
333
9.60k
        let mut inner = self.inner.lock();
334
9.60k
335
9.60k
        if !inner.is_disconnected {
336
4.81k
            inner.is_disconnected = true;
337
4.81k
            inner.senders.disconnect();
338
4.81k
            inner.receivers.disconnect();
339
4.81k
            true
340
        } else {
341
4.79k
            false
342
        }
343
9.60k
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::disconnect
Line
Count
Source
332
1.98k
    pub(crate) fn disconnect(&self) -> bool {
333
1.98k
        let mut inner = self.inner.lock();
334
1.98k
335
1.98k
        if !inner.is_disconnected {
336
1.00k
            inner.is_disconnected = true;
337
1.00k
            inner.senders.disconnect();
338
1.00k
            inner.receivers.disconnect();
339
1.00k
            true
340
        } else {
341
981
            false
342
        }
343
1.98k
    }
<crossbeam_channel::flavors::zero::Channel<zero::drops::DropCounter>>::disconnect
Line
Count
Source
332
200
    pub(crate) fn disconnect(&self) -> bool {
333
200
        let mut inner = self.inner.lock();
334
200
335
200
        if !inner.is_disconnected {
336
100
            inner.is_disconnected = true;
337
100
            inner.senders.disconnect();
338
100
            inner.receivers.disconnect();
339
100
            true
340
        } else {
341
100
            false
342
        }
343
200
    }
<crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Line
Count
Source
332
16
    pub(crate) fn disconnect(&self) -> bool {
333
16
        let mut inner = self.inner.lock();
334
16
335
16
        if !inner.is_disconnected {
336
8
            inner.is_disconnected = true;
337
8
            inner.senders.disconnect();
338
8
            inner.receivers.disconnect();
339
8
            true
340
        } else {
341
8
            false
342
        }
343
16
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Line
Count
Source
332
16
    pub(crate) fn disconnect(&self) -> bool {
333
16
        let mut inner = self.inner.lock();
334
16
335
16
        if !inner.is_disconnected {
336
8
            inner.is_disconnected = true;
337
8
            inner.senders.disconnect();
338
8
            inner.receivers.disconnect();
339
8
            true
340
        } else {
341
8
            false
342
        }
343
16
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Line
Count
Source
332
10
    pub(crate) fn disconnect(&self) -> bool {
333
10
        let mut inner = self.inner.lock();
334
10
335
10
        if !inner.is_disconnected {
336
5
            inner.is_disconnected = true;
337
5
            inner.senders.disconnect();
338
5
            inner.receivers.disconnect();
339
5
            true
340
        } else {
341
5
            false
342
        }
343
10
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Line
Count
Source
332
93
    pub(crate) fn disconnect(&self) -> bool {
333
93
        let mut inner = self.inner.lock();
334
93
335
93
        if !inner.is_disconnected {
336
47
            inner.is_disconnected = true;
337
47
            inner.senders.disconnect();
338
47
            inner.receivers.disconnect();
339
47
            true
340
        } else {
341
46
            false
342
        }
343
93
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Line
Count
Source
332
20
    pub(crate) fn disconnect(&self) -> bool {
333
20
        let mut inner = self.inner.lock();
334
20
335
20
        if !inner.is_disconnected {
336
10
            inner.is_disconnected = true;
337
10
            inner.senders.disconnect();
338
10
            inner.receivers.disconnect();
339
10
            true
340
        } else {
341
10
            false
342
        }
343
20
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::disconnect
Line
Count
Source
332
2.00k
    pub(crate) fn disconnect(&self) -> bool {
333
2.00k
        let mut inner = self.inner.lock();
334
2.00k
335
2.00k
        if !inner.is_disconnected {
336
1.00k
            inner.is_disconnected = true;
337
1.00k
            inner.senders.disconnect();
338
1.00k
            inner.receivers.disconnect();
339
1.00k
            true
340
        } else {
341
1.00k
            false
342
        }
343
2.00k
    }
<crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Line
Count
Source
332
58
    pub(crate) fn disconnect(&self) -> bool {
333
58
        let mut inner = self.inner.lock();
334
58
335
58
        if !inner.is_disconnected {
336
29
            inner.is_disconnected = true;
337
29
            inner.senders.disconnect();
338
29
            inner.receivers.disconnect();
339
29
            true
340
        } else {
341
29
            false
342
        }
343
58
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<isize>>>::disconnect
<crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Line
Count
Source
332
12
    pub(crate) fn disconnect(&self) -> bool {
333
12
        let mut inner = self.inner.lock();
334
12
335
12
        if !inner.is_disconnected {
336
6
            inner.is_disconnected = true;
337
6
            inner.senders.disconnect();
338
6
            inner.receivers.disconnect();
339
6
            true
340
        } else {
341
6
            false
342
        }
343
12
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Line
Count
Source
332
64
    pub(crate) fn disconnect(&self) -> bool {
333
64
        let mut inner = self.inner.lock();
334
64
335
64
        if !inner.is_disconnected {
336
32
            inner.is_disconnected = true;
337
32
            inner.senders.disconnect();
338
32
            inner.receivers.disconnect();
339
32
            true
340
        } else {
341
32
            false
342
        }
343
64
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<i32>>>::disconnect
Line
Count
Source
332
10
    pub(crate) fn disconnect(&self) -> bool {
333
10
        let mut inner = self.inner.lock();
334
10
335
10
        if !inner.is_disconnected {
336
5
            inner.is_disconnected = true;
337
5
            inner.senders.disconnect();
338
5
            inner.receivers.disconnect();
339
5
            true
340
        } else {
341
5
            false
342
        }
343
10
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<array::drops::DropCounter>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
<crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Line
Count
Source
332
6
    pub(crate) fn disconnect(&self) -> bool {
333
6
        let mut inner = self.inner.lock();
334
6
335
6
        if !inner.is_disconnected {
336
3
            inner.is_disconnected = true;
337
3
            inner.senders.disconnect();
338
3
            inner.receivers.disconnect();
339
3
            true
340
        } else {
341
3
            false
342
        }
343
6
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<list::drops::DropCounter>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::disconnect
<crossbeam_channel::flavors::zero::Channel<alloc::string::String>>::disconnect
Line
Count
Source
332
2
    pub(crate) fn disconnect(&self) -> bool {
333
2
        let mut inner = self.inner.lock();
334
2
335
2
        if !inner.is_disconnected {
336
1
            inner.is_disconnected = true;
337
1
            inner.senders.disconnect();
338
1
            inner.receivers.disconnect();
339
1
            true
340
        } else {
341
1
            false
342
        }
343
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
<crossbeam_channel::flavors::zero::Channel<u32>>::disconnect
Line
Count
Source
332
4
    pub(crate) fn disconnect(&self) -> bool {
333
4
        let mut inner = self.inner.lock();
334
4
335
4
        if !inner.is_disconnected {
336
2
            inner.is_disconnected = true;
337
2
            inner.senders.disconnect();
338
2
            inner.receivers.disconnect();
339
2
            true
340
        } else {
341
2
            false
342
        }
343
4
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Line
Count
Source
332
2.26k
    pub(crate) fn disconnect(&self) -> bool {
333
2.26k
        let mut inner = self.inner.lock();
334
2.26k
335
2.26k
        if !inner.is_disconnected {
336
1.13k
            inner.is_disconnected = true;
337
1.13k
            inner.senders.disconnect();
338
1.13k
            inner.receivers.disconnect();
339
1.13k
            true
340
        } else {
341
1.13k
            false
342
        }
343
2.26k
    }
<crossbeam_channel::flavors::zero::Channel<[u8; 0]>>::disconnect
Line
Count
Source
332
2
    pub(crate) fn disconnect(&self) -> bool {
333
2
        let mut inner = self.inner.lock();
334
2
335
2
        if !inner.is_disconnected {
336
1
            inner.is_disconnected = true;
337
1
            inner.senders.disconnect();
338
1
            inner.receivers.disconnect();
339
1
            true
340
        } else {
341
1
            false
342
        }
343
2
    }
<crossbeam_channel::flavors::zero::Channel<golang::zerosize::zero_size_struct::ZeroSize>>::disconnect
Line
Count
Source
332
2
    pub(crate) fn disconnect(&self) -> bool {
333
2
        let mut inner = self.inner.lock();
334
2
335
2
        if !inner.is_disconnected {
336
1
            inner.is_disconnected = true;
337
1
            inner.senders.disconnect();
338
1
            inner.receivers.disconnect();
339
1
            true
340
        } else {
341
1
            false
342
        }
343
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
<crossbeam_channel::flavors::zero::Channel<i64>>::disconnect
Line
Count
Source
332
2
    pub(crate) fn disconnect(&self) -> bool {
333
2
        let mut inner = self.inner.lock();
334
2
335
2
        if !inner.is_disconnected {
336
1
            inner.is_disconnected = true;
337
1
            inner.senders.disconnect();
338
1
            inner.receivers.disconnect();
339
1
            true
340
        } else {
341
1
            false
342
        }
343
2
    }
<crossbeam_channel::flavors::zero::Channel<bool>>::disconnect
Line
Count
Source
332
612
    pub(crate) fn disconnect(&self) -> bool {
333
612
        let mut inner = self.inner.lock();
334
612
335
612
        if !inner.is_disconnected {
336
306
            inner.is_disconnected = true;
337
306
            inner.senders.disconnect();
338
306
            inner.receivers.disconnect();
339
306
            true
340
        } else {
341
306
            false
342
        }
343
612
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any>>>::disconnect
<crossbeam_channel::flavors::zero::Channel<u8>>::disconnect
Line
Count
Source
332
8
    pub(crate) fn disconnect(&self) -> bool {
333
8
        let mut inner = self.inner.lock();
334
8
335
8
        if !inner.is_disconnected {
336
4
            inner.is_disconnected = true;
337
4
            inner.senders.disconnect();
338
4
            inner.receivers.disconnect();
339
4
            true
340
        } else {
341
4
            false
342
        }
343
8
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<()>>::disconnect
<crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Line
Count
Source
332
64
    pub(crate) fn disconnect(&self) -> bool {
333
64
        let mut inner = self.inner.lock();
334
64
335
64
        if !inner.is_disconnected {
336
32
            inner.is_disconnected = true;
337
32
            inner.senders.disconnect();
338
32
            inner.receivers.disconnect();
339
32
            true
340
        } else {
341
32
            false
342
        }
343
64
    }
<crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::disconnect
Line
Count
Source
332
2.00k
    pub(crate) fn disconnect(&self) -> bool {
333
2.00k
        let mut inner = self.inner.lock();
334
2.00k
335
2.00k
        if !inner.is_disconnected {
336
1.00k
            inner.is_disconnected = true;
337
1.00k
            inner.senders.disconnect();
338
1.00k
            inner.receivers.disconnect();
339
1.00k
            true
340
        } else {
341
1.00k
            false
342
        }
343
2.00k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Line
Count
Source
332
114
    pub(crate) fn disconnect(&self) -> bool {
333
114
        let mut inner = self.inner.lock();
334
114
335
114
        if !inner.is_disconnected {
336
57
            inner.is_disconnected = true;
337
57
            inner.senders.disconnect();
338
57
            inner.receivers.disconnect();
339
57
            true
340
        } else {
341
57
            false
342
        }
343
114
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Line
Count
Source
332
12
    pub(crate) fn disconnect(&self) -> bool {
333
12
        let mut inner = self.inner.lock();
334
12
335
12
        if !inner.is_disconnected {
336
6
            inner.is_disconnected = true;
337
6
            inner.senders.disconnect();
338
6
            inner.receivers.disconnect();
339
6
            true
340
        } else {
341
6
            false
342
        }
343
12
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<std::time::Instant>>::disconnect
<crossbeam_channel::flavors::zero::Channel<()>>::disconnect
Line
Count
Source
332
4
    pub(crate) fn disconnect(&self) -> bool {
333
4
        let mut inner = self.inner.lock();
334
4
335
4
        if !inner.is_disconnected {
336
2
            inner.is_disconnected = true;
337
2
            inner.senders.disconnect();
338
2
            inner.receivers.disconnect();
339
2
            true
340
        } else {
341
2
            false
342
        }
343
4
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Channel<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>>>::disconnect
<crossbeam_channel::flavors::zero::Channel<usize>>::disconnect
Line
Count
Source
332
8
    pub(crate) fn disconnect(&self) -> bool {
333
8
        let mut inner = self.inner.lock();
334
8
335
8
        if !inner.is_disconnected {
336
4
            inner.is_disconnected = true;
337
4
            inner.senders.disconnect();
338
4
            inner.receivers.disconnect();
339
4
            true
340
        } else {
341
4
            false
342
        }
343
8
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::disconnect
Line
Count
Source
332
14
    pub(crate) fn disconnect(&self) -> bool {
333
14
        let mut inner = self.inner.lock();
334
14
335
14
        if !inner.is_disconnected {
336
7
            inner.is_disconnected = true;
337
7
            inner.senders.disconnect();
338
7
            inner.receivers.disconnect();
339
7
            true
340
        } else {
341
7
            false
342
        }
343
14
    }
344
345
    /// Returns the current number of messages inside the channel.
346
49.9k
    pub(crate) fn len(&self) -> usize {
347
49.9k
        0
348
49.9k
    }
<crossbeam_channel::flavors::zero::Channel<i32>>::len
Line
Count
Source
346
4
    pub(crate) fn len(&self) -> usize {
347
4
        0
348
4
    }
<crossbeam_channel::flavors::zero::Channel<usize>>::len
Line
Count
Source
346
49.8k
    pub(crate) fn len(&self) -> usize {
347
49.8k
        0
348
49.8k
    }
349
350
    /// Returns the capacity of the channel.
351
2
    pub(crate) fn capacity(&self) -> Option<usize> {
352
2
        Some(0)
353
2
    }
354
355
    /// Returns `true` if the channel is empty.
356
4
    pub(crate) fn is_empty(&self) -> bool {
357
4
        true
358
4
    }
359
360
    /// Returns `true` if the channel is full.
361
4
    pub(crate) fn is_full(&self) -> bool {
362
4
        true
363
4
    }
364
}
365
366
/// Receiver handle to a channel.
367
pub(crate) struct Receiver<'a, T>(&'a Channel<T>);
368
369
/// Sender handle to a channel.
370
pub(crate) struct Sender<'a, T>(&'a Channel<T>);
371
372
impl<T> SelectHandle for Receiver<'_, T> {
373
7.82M
    fn try_select(&self, token: &mut Token) -> bool {
374
7.82M
        self.0.start_recv(token)
375
7.82M
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
54.7k
    fn try_select(&self, token: &mut Token) -> bool {
374
54.7k
        self.0.start_recv(token)
375
54.7k
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
26
    fn try_select(&self, token: &mut Token) -> bool {
374
26
        self.0.start_recv(token)
375
26
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
32.0k
    fn try_select(&self, token: &mut Token) -> bool {
374
32.0k
        self.0.start_recv(token)
375
32.0k
    }
<crossbeam_channel::flavors::zero::Receiver<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
1.57k
    fn try_select(&self, token: &mut Token) -> bool {
374
1.57k
        self.0.start_recv(token)
375
1.57k
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
7.64M
    fn try_select(&self, token: &mut Token) -> bool {
374
7.64M
        self.0.start_recv(token)
375
7.64M
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
2
    fn try_select(&self, token: &mut Token) -> bool {
374
2
        self.0.start_recv(token)
375
2
    }
<crossbeam_channel::flavors::zero::Receiver<u8> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
11.9k
    fn try_select(&self, token: &mut Token) -> bool {
374
11.9k
        self.0.start_recv(token)
375
11.9k
    }
<crossbeam_channel::flavors::zero::Receiver<bool> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
1
    fn try_select(&self, token: &mut Token) -> bool {
374
1
        self.0.start_recv(token)
375
1
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
57.1k
    fn try_select(&self, token: &mut Token) -> bool {
374
57.1k
        self.0.start_recv(token)
375
57.1k
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
5.26k
    fn try_select(&self, token: &mut Token) -> bool {
374
5.26k
        self.0.start_recv(token)
375
5.26k
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
29
    fn try_select(&self, token: &mut Token) -> bool {
374
29
        self.0.start_recv(token)
375
29
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
373
16.0k
    fn try_select(&self, token: &mut Token) -> bool {
374
16.0k
        self.0.start_recv(token)
375
16.0k
    }
376
377
    fn deadline(&self) -> Option<Instant> {
378
        None
379
    }
380
381
3.87M
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
3.87M
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
3.87M
384
3.87M
        let mut inner = self.0.inner.lock();
385
3.87M
        inner
386
3.87M
            .receivers
387
3.87M
            .register_with_packet(oper, packet as usize, cx);
388
3.87M
        inner.senders.notify();
389
3.87M
        inner.senders.can_select() || 
inner.is_disconnected3.85M
390
3.87M
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
10.9k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
10.9k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
10.9k
384
10.9k
        let mut inner = self.0.inner.lock();
385
10.9k
        inner
386
10.9k
            .receivers
387
10.9k
            .register_with_packet(oper, packet as usize, cx);
388
10.9k
        inner.senders.notify();
389
10.9k
        inner.senders.can_select() || 
inner.is_disconnected2.13k
390
11.0k
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
3.84M
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
3.84M
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
3.84M
384
3.84M
        let mut inner = self.0.inner.lock();
385
3.84M
        inner
386
3.84M
            .receivers
387
3.84M
            .register_with_packet(oper, packet as usize, cx);
388
3.84M
        inner.senders.notify();
389
3.84M
        inner.senders.can_select() || 
inner.is_disconnected3.84M
390
3.84M
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
2.22k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
2.22k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
2.22k
384
2.22k
        let mut inner = self.0.inner.lock();
385
2.22k
        inner
386
2.22k
            .receivers
387
2.22k
            .register_with_packet(oper, packet as usize, cx);
388
2.22k
        inner.senders.notify();
389
2.22k
        inner.senders.can_select() || 
inner.is_disconnected853
390
2.22k
    }
<crossbeam_channel::flavors::zero::Receiver<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
709
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
709
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
709
384
709
        let mut inner = self.0.inner.lock();
385
709
        inner
386
709
            .receivers
387
709
            .register_with_packet(oper, packet as usize, cx);
388
709
        inner.senders.notify();
389
709
        inner.senders.can_select() || 
inner.is_disconnected131
390
709
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
24
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
24
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
24
384
24
        let mut inner = self.0.inner.lock();
385
24
        inner
386
24
            .receivers
387
24
            .register_with_packet(oper, packet as usize, cx);
388
24
        inner.senders.notify();
389
24
        inner.senders.can_select() || inner.is_disconnected
390
24
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
1
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
1
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
1
384
1
        let mut inner = self.0.inner.lock();
385
1
        inner
386
1
            .receivers
387
1
            .register_with_packet(oper, packet as usize, cx);
388
1
        inner.senders.notify();
389
1
        inner.senders.can_select() || 
inner.is_disconnected0
390
1
    }
<crossbeam_channel::flavors::zero::Receiver<u8> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
506
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
506
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
506
384
506
        let mut inner = self.0.inner.lock();
385
506
        inner
386
506
            .receivers
387
506
            .register_with_packet(oper, packet as usize, cx);
388
506
        inner.senders.notify();
389
506
        inner.senders.can_select() || inner.is_disconnected
390
506
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
14.0k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
14.0k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
14.0k
384
14.0k
        let mut inner = self.0.inner.lock();
385
14.0k
        inner
386
14.0k
            .receivers
387
14.0k
            .register_with_packet(oper, packet as usize, cx);
388
14.0k
        inner.senders.notify();
389
14.0k
        inner.senders.can_select() || 
inner.is_disconnected8.74k
390
14.0k
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
997
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
997
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
997
384
997
        let mut inner = self.0.inner.lock();
385
997
        inner
386
997
            .receivers
387
997
            .register_with_packet(oper, packet as usize, cx);
388
997
        inner.senders.notify();
389
997
        inner.senders.can_select() || 
inner.is_disconnected267
390
997
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
264
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
264
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
264
384
264
        let mut inner = self.0.inner.lock();
385
264
        inner
386
264
            .receivers
387
264
            .register_with_packet(oper, packet as usize, cx);
388
264
        inner.senders.notify();
389
264
        inner.senders.can_select() || 
inner.is_disconnected122
390
264
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
381
25
    fn register(&self, oper: Operation, cx: &Context) -> bool {
382
25
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
383
25
384
25
        let mut inner = self.0.inner.lock();
385
25
        inner
386
25
            .receivers
387
25
            .register_with_packet(oper, packet as usize, cx);
388
25
        inner.senders.notify();
389
25
        inner.senders.can_select() || inner.is_disconnected
390
25
    }
391
392
    fn unregister(&self, oper: Operation) {
393
3.87M
        if let Some(
operation3.86M
) = self.0.inner.lock().receivers.unregister(oper) {
394
3.86M
            unsafe {
395
3.86M
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
3.86M
            }
397
5.17k
        }
398
3.87M
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
10.9k
        if let Some(
operation10.3k
) = self.0.inner.lock().receivers.unregister(oper) {
394
10.3k
            unsafe {
395
10.3k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
10.3k
            }
397
629
        }
398
10.9k
    }
<crossbeam_channel::flavors::zero::Receiver<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
709
        if let Some(
operation578
) = self.0.inner.lock().receivers.unregister(oper) {
394
578
            unsafe {
395
578
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
578
            }
397
131
        }
398
709
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
3.84M
        if let Some(
operation3.84M
) = self.0.inner.lock().receivers.unregister(oper) {
394
3.84M
            unsafe {
395
3.84M
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
3.84M
            }
397
11
        }
398
3.84M
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
2.21k
        if let Some(
operation1.72k
) = self.0.inner.lock().receivers.unregister(oper) {
394
1.72k
            unsafe {
395
1.72k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
1.72k
            }
397
491
        }
398
2.21k
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
24
        if let Some(
operation20
) = self.0.inner.lock().receivers.unregister(oper) {
394
20
            unsafe {
395
20
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
20
            }
397
4
        }
398
24
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<std::time::Instant> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
1
        if let Some(operation) = self.0.inner.lock().receivers.unregister(oper) {
394
1
            unsafe {
395
1
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
1
            }
397
0
        }
398
1
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<std::time::Instant> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<std::time::Instant> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Receiver<u8> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
506
        if let Some(operation) = self.0.inner.lock().receivers.unregister(oper) {
394
506
            unsafe {
395
506
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
506
            }
397
0
        }
398
506
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
14.0k
        if let Some(
operation10.2k
) = self.0.inner.lock().receivers.unregister(oper) {
394
10.2k
            unsafe {
395
10.2k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
10.2k
            }
397
3.78k
        }
398
14.0k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<bool> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
264
        if let Some(
operation248
) = self.0.inner.lock().receivers.unregister(oper) {
394
248
            unsafe {
395
248
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
248
            }
397
16
        }
398
264
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
997
        if let Some(
operation896
) = self.0.inner.lock().receivers.unregister(oper) {
394
896
            unsafe {
395
896
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
896
            }
397
101
        }
398
997
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<std::time::Instant> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
393
25
        if let Some(
operation21
) = self.0.inner.lock().receivers.unregister(oper) {
394
21
            unsafe {
395
21
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
396
21
            }
397
4
        }
398
25
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<std::time::Instant> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::unregister
399
400
5.16k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
5.16k
        token.zero = cx.wait_packet();
402
5.16k
        true
403
5.16k
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
629
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
629
        token.zero = cx.wait_packet();
402
629
        true
403
629
    }
<crossbeam_channel::flavors::zero::Receiver<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
131
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
131
        token.zero = cx.wait_packet();
402
131
        true
403
131
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
4
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
4
        token.zero = cx.wait_packet();
402
4
        true
403
4
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
11
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
11
        token.zero = cx.wait_packet();
402
11
        true
403
11
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
482
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
482
        token.zero = cx.wait_packet();
402
482
        true
403
482
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
3.78k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
3.78k
        token.zero = cx.wait_packet();
402
3.78k
        true
403
3.78k
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
4
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
4
        token.zero = cx.wait_packet();
402
4
        true
403
4
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
101
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
101
        token.zero = cx.wait_packet();
402
101
        true
403
101
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
400
16
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
401
16
        token.zero = cx.wait_packet();
402
16
        true
403
16
    }
404
405
70.7k
    fn is_ready(&self) -> bool {
406
70.7k
        let inner = self.0.inner.lock();
407
70.7k
        inner.senders.can_select() || 
inner.is_disconnected44.4k
408
70.7k
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::is_ready
Line
Count
Source
405
61
    fn is_ready(&self) -> bool {
406
61
        let inner = self.0.inner.lock();
407
61
        inner.senders.can_select() || inner.is_disconnected
408
61
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::is_ready
Line
Count
Source
405
54.5k
    fn is_ready(&self) -> bool {
406
54.5k
        let inner = self.0.inner.lock();
407
54.5k
        inner.senders.can_select() || 
inner.is_disconnected38.2k
408
54.5k
    }
<crossbeam_channel::flavors::zero::Receiver<usize> as crossbeam_channel::select::SelectHandle>::is_ready
Line
Count
Source
405
16.1k
    fn is_ready(&self) -> bool {
406
16.1k
        let inner = self.0.inner.lock();
407
16.1k
        inner.senders.can_select() || 
inner.is_disconnected6.15k
408
16.1k
    }
409
410
8
    fn watch(&self, oper: Operation, cx: &Context) -> bool {
411
8
        let mut inner = self.0.inner.lock();
412
8
        inner.receivers.watch(oper, cx);
413
8
        inner.senders.can_select() || inner.is_disconnected
414
8
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::watch
Line
Count
Source
410
4
    fn watch(&self, oper: Operation, cx: &Context) -> bool {
411
4
        let mut inner = self.0.inner.lock();
412
4
        inner.receivers.watch(oper, cx);
413
4
        inner.senders.can_select() || inner.is_disconnected
414
4
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::watch
Line
Count
Source
410
4
    fn watch(&self, oper: Operation, cx: &Context) -> bool {
411
4
        let mut inner = self.0.inner.lock();
412
4
        inner.receivers.watch(oper, cx);
413
4
        inner.senders.can_select() || inner.is_disconnected
414
4
    }
415
416
8
    fn unwatch(&self, oper: Operation) {
417
8
        let mut inner = self.0.inner.lock();
418
8
        inner.receivers.unwatch(oper);
419
8
    }
<crossbeam_channel::flavors::zero::Receiver<()> as crossbeam_channel::select::SelectHandle>::unwatch
Line
Count
Source
416
4
    fn unwatch(&self, oper: Operation) {
417
4
        let mut inner = self.0.inner.lock();
418
4
        inner.receivers.unwatch(oper);
419
4
    }
<crossbeam_channel::flavors::zero::Receiver<i32> as crossbeam_channel::select::SelectHandle>::unwatch
Line
Count
Source
416
4
    fn unwatch(&self, oper: Operation) {
417
4
        let mut inner = self.0.inner.lock();
418
4
        inner.receivers.unwatch(oper);
419
4
    }
420
}
421
422
impl<T> SelectHandle for Sender<'_, T> {
423
9.48M
    fn try_select(&self, token: &mut Token) -> bool {
424
9.48M
        self.0.start_send(token)
425
9.48M
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
69.7k
    fn try_select(&self, token: &mut Token) -> bool {
424
69.7k
        self.0.start_send(token)
425
69.7k
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
1.12k
    fn try_select(&self, token: &mut Token) -> bool {
424
1.12k
        self.0.start_send(token)
425
1.12k
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
5.38k
    fn try_select(&self, token: &mut Token) -> bool {
424
5.38k
        self.0.start_send(token)
425
5.38k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
2.62M
    fn try_select(&self, token: &mut Token) -> bool {
424
2.62M
        self.0.start_send(token)
425
2.62M
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
61.9k
    fn try_select(&self, token: &mut Token) -> bool {
424
61.9k
        self.0.start_send(token)
425
61.9k
    }
<crossbeam_channel::flavors::zero::Sender<u8> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
10.0k
    fn try_select(&self, token: &mut Token) -> bool {
424
10.0k
        self.0.start_send(token)
425
10.0k
    }
<crossbeam_channel::flavors::zero::Sender<alloc::string::String> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
2
    fn try_select(&self, token: &mut Token) -> bool {
424
2
        self.0.start_send(token)
425
2
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
85.4k
    fn try_select(&self, token: &mut Token) -> bool {
424
85.4k
        self.0.start_send(token)
425
85.4k
    }
<crossbeam_channel::flavors::zero::Sender<i64> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
3
    fn try_select(&self, token: &mut Token) -> bool {
424
3
        self.0.start_send(token)
425
3
    }
<crossbeam_channel::flavors::zero::Sender<u32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
9
    fn try_select(&self, token: &mut Token) -> bool {
424
9
        self.0.start_send(token)
425
9
    }
<crossbeam_channel::flavors::zero::Sender<bool> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
3
    fn try_select(&self, token: &mut Token) -> bool {
424
3
        self.0.start_send(token)
425
3
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
49.7k
    fn try_select(&self, token: &mut Token) -> bool {
424
49.7k
        self.0.start_send(token)
425
49.7k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
6.51M
    fn try_select(&self, token: &mut Token) -> bool {
424
6.51M
        self.0.start_send(token)
425
6.51M
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
1.32k
    fn try_select(&self, token: &mut Token) -> bool {
424
1.32k
        self.0.start_send(token)
425
1.32k
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
9.61k
    fn try_select(&self, token: &mut Token) -> bool {
424
9.61k
        self.0.start_send(token)
425
9.61k
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
54.0k
    fn try_select(&self, token: &mut Token) -> bool {
424
54.0k
        self.0.start_send(token)
425
54.0k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::try_select
Line
Count
Source
423
2
    fn try_select(&self, token: &mut Token) -> bool {
424
2
        self.0.start_send(token)
425
2
    }
426
427
    fn deadline(&self) -> Option<Instant> {
428
        None
429
    }
430
431
4.68M
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
4.68M
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
4.68M
434
4.68M
        let mut inner = self.0.inner.lock();
435
4.68M
        inner
436
4.68M
            .senders
437
4.68M
            .register_with_packet(oper, packet as usize, cx);
438
4.68M
        inner.receivers.notify();
439
4.68M
        inner.receivers.can_select() || 
inner.is_disconnected4.67M
440
4.68M
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
44.0k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
44.0k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
44.0k
434
44.0k
        let mut inner = self.0.inner.lock();
435
44.0k
        inner
436
44.0k
            .senders
437
44.0k
            .register_with_packet(oper, packet as usize, cx);
438
44.0k
        inner.receivers.notify();
439
44.0k
        inner.receivers.can_select() || 
inner.is_disconnected43.6k
440
44.0k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1.31M
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1.31M
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1.31M
434
1.31M
        let mut inner = self.0.inner.lock();
435
1.31M
        inner
436
1.31M
            .senders
437
1.31M
            .register_with_packet(oper, packet as usize, cx);
438
1.31M
        inner.receivers.notify();
439
1.31M
        inner.receivers.can_select() || inner.is_disconnected
440
1.31M
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
992
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
992
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
992
434
992
        let mut inner = self.0.inner.lock();
435
992
        inner
436
992
            .senders
437
992
            .register_with_packet(oper, packet as usize, cx);
438
992
        inner.receivers.notify();
439
992
        inner.receivers.can_select() || 
inner.is_disconnected869
440
992
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1.14k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1.14k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1.14k
434
1.14k
        let mut inner = self.0.inner.lock();
435
1.14k
        inner
436
1.14k
            .senders
437
1.14k
            .register_with_packet(oper, packet as usize, cx);
438
1.14k
        inner.receivers.notify();
439
1.14k
        inner.receivers.can_select() || 
inner.is_disconnected1.13k
440
1.14k
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1.93k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1.93k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1.93k
434
1.93k
        let mut inner = self.0.inner.lock();
435
1.93k
        inner
436
1.93k
            .senders
437
1.93k
            .register_with_packet(oper, packet as usize, cx);
438
1.93k
        inner.receivers.notify();
439
1.93k
        inner.receivers.can_select() || 
inner.is_disconnected992
440
1.92k
    }
<crossbeam_channel::flavors::zero::Sender<u32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
2
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
2
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
2
434
2
        let mut inner = self.0.inner.lock();
435
2
        inner
436
2
            .senders
437
2
            .register_with_packet(oper, packet as usize, cx);
438
2
        inner.receivers.notify();
439
2
        inner.receivers.can_select() || inner.is_disconnected
440
2
    }
<crossbeam_channel::flavors::zero::Sender<bool> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1
434
1
        let mut inner = self.0.inner.lock();
435
1
        inner
436
1
            .senders
437
1
            .register_with_packet(oper, packet as usize, cx);
438
1
        inner.receivers.notify();
439
1
        inner.receivers.can_select() || inner.is_disconnected
440
1
    }
<crossbeam_channel::flavors::zero::Sender<i64> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1
434
1
        let mut inner = self.0.inner.lock();
435
1
        inner
436
1
            .senders
437
1
            .register_with_packet(oper, packet as usize, cx);
438
1
        inner.receivers.notify();
439
1
        inner.receivers.can_select() || inner.is_disconnected
440
1
    }
<crossbeam_channel::flavors::zero::Sender<u8> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
522
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
522
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
522
434
522
        let mut inner = self.0.inner.lock();
435
522
        inner
436
522
            .senders
437
522
            .register_with_packet(oper, packet as usize, cx);
438
522
        inner.receivers.notify();
439
522
        inner.receivers.can_select() || 
inner.is_disconnected492
440
522
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
43.3k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
43.3k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
43.3k
434
43.3k
        let mut inner = self.0.inner.lock();
435
43.3k
        inner
436
43.3k
            .senders
437
43.3k
            .register_with_packet(oper, packet as usize, cx);
438
43.3k
        inner.receivers.notify();
439
43.3k
        inner.receivers.can_select() || 
inner.is_disconnected39.0k
440
43.3k
    }
<crossbeam_channel::flavors::zero::Sender<alloc::string::String> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1
434
1
        let mut inner = self.0.inner.lock();
435
1
        inner
436
1
            .senders
437
1
            .register_with_packet(oper, packet as usize, cx);
438
1
        inner.receivers.notify();
439
1
        inner.receivers.can_select() || 
inner.is_disconnected0
440
1
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
493
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
493
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
493
434
493
        let mut inner = self.0.inner.lock();
435
493
        inner
436
493
            .senders
437
493
            .register_with_packet(oper, packet as usize, cx);
438
493
        inner.receivers.notify();
439
493
        inner.receivers.can_select() || 
inner.is_disconnected168
440
493
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
3.37k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
3.37k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
3.37k
434
3.37k
        let mut inner = self.0.inner.lock();
435
3.37k
        inner
436
3.37k
            .senders
437
3.37k
            .register_with_packet(oper, packet as usize, cx);
438
3.37k
        inner.receivers.notify();
439
3.37k
        inner.receivers.can_select() || 
inner.is_disconnected944
440
3.37k
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
1.67k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
1.67k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
1.67k
434
1.67k
        let mut inner = self.0.inner.lock();
435
1.67k
        inner
436
1.67k
            .senders
437
1.67k
            .register_with_packet(oper, packet as usize, cx);
438
1.67k
        inner.receivers.notify();
439
1.67k
        inner.receivers.can_select() || inner.is_disconnected
440
1.67k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
3.25M
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
3.25M
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
3.25M
434
3.25M
        let mut inner = self.0.inner.lock();
435
3.25M
        inner
436
3.25M
            .senders
437
3.25M
            .register_with_packet(oper, packet as usize, cx);
438
3.25M
        inner.receivers.notify();
439
3.25M
        inner.receivers.can_select() || 
inner.is_disconnected3.25M
440
3.25M
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
2
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
2
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
2
434
2
        let mut inner = self.0.inner.lock();
435
2
        inner
436
2
            .senders
437
2
            .register_with_packet(oper, packet as usize, cx);
438
2
        inner.receivers.notify();
439
2
        inner.receivers.can_select() || inner.is_disconnected
440
2
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::register
Line
Count
Source
431
16.2k
    fn register(&self, oper: Operation, cx: &Context) -> bool {
432
16.2k
        let packet = Box::into_raw(Packet::<T>::empty_on_heap());
433
16.2k
434
16.2k
        let mut inner = self.0.inner.lock();
435
16.2k
        inner
436
16.2k
            .senders
437
16.2k
            .register_with_packet(oper, packet as usize, cx);
438
16.2k
        inner.receivers.notify();
439
16.2k
        inner.receivers.can_select() || inner.is_disconnected
440
16.2k
    }
441
442
    fn unregister(&self, oper: Operation) {
443
4.68M
        if let Some(
operation4.62M
) = self.0.inner.lock().senders.unregister(oper) {
444
4.62M
            unsafe {
445
4.62M
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
4.62M
            }
447
55.5k
        }
448
4.68M
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
44.0k
        if let Some(
operation24.7k
) = self.0.inner.lock().senders.unregister(oper) {
444
24.7k
            unsafe {
445
24.7k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
24.7k
            }
447
19.3k
        }
448
44.0k
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1.14k
        if let Some(
operation1
) = self.0.inner.lock().senders.unregister(oper) {
444
1
            unsafe {
445
1
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1
            }
447
1.13k
        }
448
1.14k
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
992
        if let Some(
operation123
) = self.0.inner.lock().senders.unregister(oper) {
444
123
            unsafe {
445
123
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
123
            }
447
869
        }
448
992
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1.91k
        if let Some(
operation1.75k
) = self.0.inner.lock().senders.unregister(oper) {
444
1.75k
            unsafe {
445
1.75k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1.75k
            }
447
158
        }
448
1.91k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1.31M
        if let Some(
operation1.31M
) = self.0.inner.lock().senders.unregister(oper) {
444
1.31M
            unsafe {
445
1.31M
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1.31M
            }
447
19
        }
448
1.31M
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Sender<alloc::string::String> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1
        if let Some(operation) = self.0.inner.lock().senders.unregister(oper) {
444
1
            unsafe {
445
1
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1
            }
447
0
        }
448
1
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
43.3k
        if let Some(
operation27.0k
) = self.0.inner.lock().senders.unregister(oper) {
444
27.0k
            unsafe {
445
27.0k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
27.0k
            }
447
16.3k
        }
448
43.3k
    }
<crossbeam_channel::flavors::zero::Sender<i64> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1
        if let Some(operation) = self.0.inner.lock().senders.unregister(oper) {
444
1
            unsafe {
445
1
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1
            }
447
0
        }
448
1
    }
<crossbeam_channel::flavors::zero::Sender<u32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
2
        if let Some(operation) = self.0.inner.lock().senders.unregister(oper) {
444
2
            unsafe {
445
2
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
2
            }
447
0
        }
448
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any>> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Sender<bool> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1
        if let Some(operation) = self.0.inner.lock().senders.unregister(oper) {
444
1
            unsafe {
445
1
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1
            }
447
0
        }
448
1
    }
<crossbeam_channel::flavors::zero::Sender<u8> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
522
        if let Some(
operation30
) = self.0.inner.lock().senders.unregister(oper) {
444
30
            unsafe {
445
30
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
30
            }
447
492
        }
448
522
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
493
        if let Some(
operation325
) = self.0.inner.lock().senders.unregister(oper) {
444
325
            unsafe {
445
325
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
325
            }
447
168
        }
448
493
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
3.37k
        if let Some(
operation3.24k
) = self.0.inner.lock().senders.unregister(oper) {
444
3.24k
            unsafe {
445
3.24k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
3.24k
            }
447
122
        }
448
3.37k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
3.25M
        if let Some(
operation3.25M
) = self.0.inner.lock().senders.unregister(oper) {
444
3.25M
            unsafe {
445
3.25M
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
3.25M
            }
447
24
        }
448
3.25M
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
1.67k
        if let Some(
operation1.09k
) = self.0.inner.lock().senders.unregister(oper) {
444
1.09k
            unsafe {
445
1.09k
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1.09k
            }
447
584
        }
448
1.67k
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::unregister
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::unregister
Line
Count
Source
443
2
        if let Some(
operation1
) = self.0.inner.lock().senders.unregister(oper) {
444
1
            unsafe {
445
1
                drop(Box::from_raw(operation.packet as *mut Packet<T>));
446
1
            }
447
1
        }
448
2
    }
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::unregister
Unexecuted instantiation: <crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::unregister
449
450
55.5k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
55.5k
        token.zero = cx.wait_packet();
452
55.5k
        true
453
55.5k
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
19.3k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
19.3k
        token.zero = cx.wait_packet();
452
19.3k
        true
453
19.3k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
19
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
19
        token.zero = cx.wait_packet();
452
19
        true
453
19
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
1.13k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
1.13k
        token.zero = cx.wait_packet();
452
1.13k
        true
453
1.13k
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
158
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
158
        token.zero = cx.wait_packet();
452
158
        true
453
158
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
869
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
869
        token.zero = cx.wait_packet();
452
869
        true
453
869
    }
<crossbeam_channel::flavors::zero::Sender<u8> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
492
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
492
        token.zero = cx.wait_packet();
452
492
        true
453
492
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
16.3k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
16.3k
        token.zero = cx.wait_packet();
452
16.3k
        true
453
16.3k
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
122
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
122
        token.zero = cx.wait_packet();
452
122
        true
453
122
    }
<crossbeam_channel::flavors::zero::Sender<alloc::boxed::Box<dyn core::any::Any + core::marker::Send>> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
168
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
168
        token.zero = cx.wait_packet();
452
168
        true
453
168
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
584
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
584
        token.zero = cx.wait_packet();
452
584
        true
453
584
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
24
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
24
        token.zero = cx.wait_packet();
452
24
        true
453
24
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
1
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
1
        token.zero = cx.wait_packet();
452
1
        true
453
1
    }
<crossbeam_channel::flavors::zero::Sender<()> as crossbeam_channel::select::SelectHandle>::accept
Line
Count
Source
450
16.2k
    fn accept(&self, token: &mut Token, cx: &Context) -> bool {
451
16.2k
        token.zero = cx.wait_packet();
452
16.2k
        true
453
16.2k
    }
454
455
48.2k
    fn is_ready(&self) -> bool {
456
48.2k
        let inner = self.0.inner.lock();
457
48.2k
        inner.receivers.can_select() || 
inner.is_disconnected18.4k
458
48.6k
    }
<crossbeam_channel::flavors::zero::Sender<i32> as crossbeam_channel::select::SelectHandle>::is_ready
Line
Count
Source
455
39
    fn is_ready(&self) -> bool {
456
39
        let inner = self.0.inner.lock();
457
39
        inner.receivers.can_select() || 
inner.is_disconnected38
458
39
    }
<crossbeam_channel::flavors::zero::Sender<usize> as crossbeam_channel::select::SelectHandle>::is_ready
Line
Count
Source
455
48.2k
    fn is_ready(&self) -> bool {
456
48.2k
        let inner = self.0.inner.lock();
457
48.2k
        inner.receivers.can_select() || 
inner.is_disconnected18.3k
458
48.5k
    }
459
460
2
    fn watch(&self, oper: Operation, cx: &Context) -> bool {
461
2
        let mut inner = self.0.inner.lock();
462
2
        inner.senders.watch(oper, cx);
463
2
        inner.receivers.can_select() || inner.is_disconnected
464
2
    }
465
466
2
    fn unwatch(&self, oper: Operation) {
467
2
        let mut inner = self.0.inner.lock();
468
2
        inner.senders.unwatch(oper);
469
2
    }
470
}