@@ -82,7 +82,7 @@ impl crate::Inner {
8282 // Slow path removal.
8383 // This is why intrusive lists don't work on no_std.
8484 let node = Node :: RemoveListener {
85- key,
85+ listener : key,
8686 propagate : propogate,
8787 } ;
8888
@@ -178,10 +178,10 @@ impl crate::Inner {
178178
179179pub ( crate ) struct List {
180180 /// The inner list.
181- pub ( crate ) inner : Mutex < ListenerSlab > ,
181+ inner : Mutex < ListenerSlab > ,
182182
183183 /// The queue of pending operations.
184- pub ( crate ) queue : Queue ,
184+ queue : Queue ,
185185}
186186
187187impl List {
@@ -240,7 +240,7 @@ impl Drop for ListGuard<'_> {
240240 let mut list = guard. take ( ) . unwrap ( ) ;
241241
242242 // Tasks to wakeup after releasing the lock.
243- let mut tasks = vec ! [ ] ;
243+ let mut tasks = alloc :: vec![ ] ;
244244
245245 // Process every node left in the queue.
246246 if let Some ( start_node) = inner. list . queue . pop ( ) {
@@ -623,6 +623,7 @@ impl ListenerSlab {
623623 }
624624}
625625
626+ #[ derive( Debug ) ]
626627pub ( crate ) enum Listener {
627628 /// The listener has a node inside of the linked list.
628629 HasNode ( NonZeroUsize ) ,
@@ -631,6 +632,16 @@ pub(crate) enum Listener {
631632 Queued ( Arc < TaskWaiting > ) ,
632633}
633634
635+ impl PartialEq for Listener {
636+ fn eq ( & self , other : & Self ) -> bool {
637+ match ( self , other) {
638+ ( Self :: HasNode ( a) , Self :: HasNode ( b) ) => a == b,
639+ ( Self :: Queued ( a) , Self :: Queued ( b) ) => Arc :: ptr_eq ( a, b) ,
640+ _ => false ,
641+ }
642+ }
643+ }
644+
634645/// A simple mutex type that optimistically assumes that the lock is uncontended.
635646pub ( crate ) struct Mutex < T > {
636647 /// The inner value.
@@ -752,7 +763,7 @@ mod tests {
752763 assert_eq ! ( listeners. notified, 0 ) ;
753764 assert_eq ! ( listeners. tail, Some ( key3) ) ;
754765 assert_eq ! ( listeners. head, Some ( key1) ) ;
755- assert_eq ! ( listeners. next , Some ( key1) ) ;
766+ assert_eq ! ( listeners. start , Some ( key1) ) ;
756767 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
757768 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
758769 assert_eq ! (
@@ -787,7 +798,7 @@ mod tests {
787798 assert_eq ! ( listeners. notified, 0 ) ;
788799 assert_eq ! ( listeners. tail, Some ( key3) ) ;
789800 assert_eq ! ( listeners. head, Some ( key1) ) ;
790- assert_eq ! ( listeners. next , Some ( key1) ) ;
801+ assert_eq ! ( listeners. start , Some ( key1) ) ;
791802 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 2 ) . unwrap( ) ) ;
792803 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
793804 assert_eq ! (
@@ -828,7 +839,7 @@ mod tests {
828839 assert_eq ! ( listeners. notified, 1 ) ;
829840 assert_eq ! ( listeners. tail, Some ( key3) ) ;
830841 assert_eq ! ( listeners. head, Some ( key1) ) ;
831- assert_eq ! ( listeners. next , Some ( key2) ) ;
842+ assert_eq ! ( listeners. start , Some ( key2) ) ;
832843 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
833844 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
834845 assert_eq ! (
@@ -863,7 +874,7 @@ mod tests {
863874 assert_eq ! ( listeners. notified, 0 ) ;
864875 assert_eq ! ( listeners. tail, Some ( key3) ) ;
865876 assert_eq ! ( listeners. head, Some ( key2) ) ;
866- assert_eq ! ( listeners. next , Some ( key2) ) ;
877+ assert_eq ! ( listeners. start , Some ( key2) ) ;
867878 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 1 ) . unwrap( ) ) ;
868879 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
869880 assert_eq ! (
@@ -906,7 +917,7 @@ mod tests {
906917 // Register one.
907918 assert_eq ! (
908919 listeners. register(
909- Pin :: new( & mut Some ( Listener :: Inserted ( key2) ) ) ,
920+ Pin :: new( & mut Some ( Listener :: HasNode ( key2) ) ) ,
910921 TaskRef :: Waker ( & waker)
911922 ) ,
912923 Some ( false )
@@ -916,7 +927,7 @@ mod tests {
916927 assert_eq ! ( listeners. notified, 0 ) ;
917928 assert_eq ! ( listeners. tail, Some ( key3) ) ;
918929 assert_eq ! ( listeners. head, Some ( key1) ) ;
919- assert_eq ! ( listeners. next , Some ( key1) ) ;
930+ assert_eq ! ( listeners. start , Some ( key1) ) ;
920931 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
921932 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
922933 assert_eq ! (
@@ -951,7 +962,7 @@ mod tests {
951962 assert_eq ! ( listeners. notified, 2 ) ;
952963 assert_eq ! ( listeners. tail, Some ( key3) ) ;
953964 assert_eq ! ( listeners. head, Some ( key1) ) ;
954- assert_eq ! ( listeners. next , Some ( key3) ) ;
965+ assert_eq ! ( listeners. start , Some ( key3) ) ;
955966 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
956967 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
957968 assert_eq ! (
@@ -982,7 +993,7 @@ mod tests {
982993 assert ! ( woken. load( Ordering :: SeqCst ) ) ;
983994 assert_eq ! (
984995 listeners. register(
985- Pin :: new( & mut Some ( Listener :: Inserted ( key2) ) ) ,
996+ Pin :: new( & mut Some ( Listener :: HasNode ( key2) ) ) ,
986997 TaskRef :: Waker ( & waker)
987998 ) ,
988999 Some ( true )
@@ -1007,7 +1018,7 @@ mod tests {
10071018 // Register one.
10081019 assert_eq ! (
10091020 listeners. register(
1010- Pin :: new( & mut Some ( Listener :: Inserted ( key2) ) ) ,
1021+ Pin :: new( & mut Some ( Listener :: HasNode ( key2) ) ) ,
10111022 TaskRef :: Waker ( & waker)
10121023 ) ,
10131024 Some ( false )
@@ -1017,7 +1028,7 @@ mod tests {
10171028 assert_eq ! ( listeners. notified, 0 ) ;
10181029 assert_eq ! ( listeners. tail, Some ( key3) ) ;
10191030 assert_eq ! ( listeners. head, Some ( key1) ) ;
1020- assert_eq ! ( listeners. next , Some ( key1) ) ;
1031+ assert_eq ! ( listeners. start , Some ( key1) ) ;
10211032 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
10221033 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
10231034 assert_eq ! (
@@ -1052,7 +1063,7 @@ mod tests {
10521063 assert_eq ! ( listeners. notified, 1 ) ;
10531064 assert_eq ! ( listeners. tail, Some ( key3) ) ;
10541065 assert_eq ! ( listeners. head, Some ( key1) ) ;
1055- assert_eq ! ( listeners. next , Some ( key2) ) ;
1066+ assert_eq ! ( listeners. start , Some ( key2) ) ;
10561067 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
10571068 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
10581069 assert_eq ! (
@@ -1087,7 +1098,7 @@ mod tests {
10871098 assert_eq ! ( listeners. notified, 1 ) ;
10881099 assert_eq ! ( listeners. tail, Some ( key3) ) ;
10891100 assert_eq ! ( listeners. head, Some ( key1) ) ;
1090- assert_eq ! ( listeners. next , Some ( key2) ) ;
1101+ assert_eq ! ( listeners. start , Some ( key2) ) ;
10911102 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 4 ) . unwrap( ) ) ;
10921103 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
10931104 assert_eq ! (
@@ -1122,7 +1133,7 @@ mod tests {
11221133 assert_eq ! ( listeners. notified, 0 ) ;
11231134 assert_eq ! ( listeners. tail, Some ( key3) ) ;
11241135 assert_eq ! ( listeners. head, Some ( key2) ) ;
1125- assert_eq ! ( listeners. next , Some ( key2) ) ;
1136+ assert_eq ! ( listeners. start , Some ( key2) ) ;
11261137 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 1 ) . unwrap( ) ) ;
11271138 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
11281139 assert_eq ! (
@@ -1154,7 +1165,7 @@ mod tests {
11541165 assert_eq ! ( listeners. notified, 1 ) ;
11551166 assert_eq ! ( listeners. tail, Some ( key3) ) ;
11561167 assert_eq ! ( listeners. head, Some ( key2) ) ;
1157- assert_eq ! ( listeners. next , Some ( key3) ) ;
1168+ assert_eq ! ( listeners. start , Some ( key3) ) ;
11581169 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 1 ) . unwrap( ) ) ;
11591170 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
11601171 assert_eq ! (
@@ -1186,7 +1197,7 @@ mod tests {
11861197 assert_eq ! ( listeners. notified, 1 ) ;
11871198 assert_eq ! ( listeners. tail, Some ( key3) ) ;
11881199 assert_eq ! ( listeners. head, Some ( key3) ) ;
1189- assert_eq ! ( listeners. next , None ) ;
1200+ assert_eq ! ( listeners. start , None ) ;
11901201 assert_eq ! ( listeners. first_empty, NonZeroUsize :: new( 2 ) . unwrap( ) ) ;
11911202 assert_eq ! ( listeners. listeners[ 0 ] , Entry :: Sentinel ) ;
11921203 assert_eq ! (
@@ -1222,11 +1233,11 @@ mod tests {
12221233
12231234 assert_eq ! (
12241235 listener1,
1225- Some ( Listener :: Inserted ( NonZeroUsize :: new( 1 ) . unwrap( ) ) )
1236+ Some ( Listener :: HasNode ( NonZeroUsize :: new( 1 ) . unwrap( ) ) )
12261237 ) ;
12271238 assert_eq ! (
12281239 listener2,
1229- Some ( Listener :: Inserted ( NonZeroUsize :: new( 2 ) . unwrap( ) ) )
1240+ Some ( Listener :: HasNode ( NonZeroUsize :: new( 2 ) . unwrap( ) ) )
12301241 ) ;
12311242
12321243 // Register a waker in the second listener.
0 commit comments