File tree 2 files changed +36
-0
lines changed
2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 41
41
#![ feature( thin_box) ]
42
42
#![ feature( strict_provenance) ]
43
43
#![ feature( drain_keep_rest) ]
44
+ #![ feature( local_waker) ]
44
45
#![ allow( internal_features) ]
45
46
#![ deny( fuzzy_provenance_casts) ]
46
47
#![ deny( unsafe_op_in_unsafe_fn) ]
@@ -62,6 +63,7 @@ mod rc;
62
63
mod slice;
63
64
mod str;
64
65
mod string;
66
+ mod task;
65
67
mod thin_box;
66
68
mod vec;
67
69
mod vec_deque;
Original file line number Diff line number Diff line change
1
+ use alloc:: rc:: Rc ;
2
+ use alloc:: sync:: Arc ;
3
+ use alloc:: task:: { LocalWake , Wake } ;
4
+ use core:: task:: { LocalWaker , Waker } ;
5
+
6
+ #[ test]
7
+ fn test_waker_will_wake_clone ( ) {
8
+ struct NoopWaker ;
9
+
10
+ impl Wake for NoopWaker {
11
+ fn wake ( self : Arc < Self > ) { }
12
+ }
13
+
14
+ let waker = Waker :: from ( Arc :: new ( NoopWaker ) ) ;
15
+ let clone = waker. clone ( ) ;
16
+
17
+ assert ! ( waker. will_wake( & clone) ) ;
18
+ assert ! ( clone. will_wake( & waker) ) ;
19
+ }
20
+
21
+ #[ test]
22
+ fn test_local_waker_will_wake_clone ( ) {
23
+ struct NoopWaker ;
24
+
25
+ impl LocalWake for NoopWaker {
26
+ fn wake ( self : Rc < Self > ) { }
27
+ }
28
+
29
+ let waker = LocalWaker :: from ( Rc :: new ( NoopWaker ) ) ;
30
+ let clone = waker. clone ( ) ;
31
+
32
+ assert ! ( waker. will_wake( & clone) ) ;
33
+ assert ! ( clone. will_wake( & waker) ) ;
34
+ }
You can’t perform that action at this time.
0 commit comments