1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! The waker
use crateruntime;
use ;
/// The VTable for the raw waker
static VTABLE: RawWakerVTable = new;
/// This function will be called when the `RawWaker` gets cloned, e.g. when the `Waker` in which the `RawWaker` is stored
/// gets cloned.
///
/// The implementation of this function must retain all resources that are required for this additional instance of a
/// `RawWaker` and associated task. Calling `wake` on the resulting `RawWaker` should result in a wakeup of the same task
/// that would have been awoken by the original `RawWaker`.
/// This function will be called when `wake` is called on the `Waker`. It must wake up the task associated with this
/// `RawWaker`.
///
/// The implementation of this function must make sure to release any resources that are associated with this instance of a
/// `RawWaker` and associated task.
/// This function will be called when `wake_by_ref` is called on the `Waker`. It must wake up the task associated with this
/// `RawWaker`.
///
/// This function is similar to `wake`, but must not consume the provided data pointer.
/// This function gets called when a `Waker` gets dropped.
///
/// The implementation of this function must make sure to release any resources that are associated with this instance of a
/// `RawWaker` and associated task.
/// Creates a new waker