Skip to content

Instantly share code, notes, and snippets.

@npmenard
Created April 24, 2024 20:40
Show Gist options
  • Save npmenard/7971c09e4e1d381370d227f964117bf2 to your computer and use it in GitHub Desktop.
Save npmenard/7971c09e4e1d381370d227f964117bf2 to your computer and use it in GitHub Desktop.
buggy pinning of event_listener
588 async fn initialize_or_wait<E, Fut: Future<Output = Result<T, E>>, F: FnOnce() -> Fut>(
589 &self,
0x40131fb0 <+60>: l32i a8, a1, 104
0x40131fb3 <+63>: s32i a8, a1, 64
590 closure: F,
591 strategy: &mut impl for<'a> Strategy<'a>,
0x40131fc1 <+77>: l32i a8, a1, 108
0x40131fc4 <+80>: s32i a8, a1, 68
0x40131fc7 <+83>: addi a8, a1, 64
592 ) -> Result<(), E> {
0x40131f87 <+19>: l8ui a8, a1, 113
0x40131f8a <+22>: l32r a9, 0x401175e4 (0x3f422810)
0x40131f8d <+25>: addx4 a8, a8, a9
0x40131f90 <+28>: l32i.n a8, a8, 0
0x40131f92 <+30>: movi.n a10, 0
0x40131f94 <+32>: l32r a3, 0x401175f8 (0x40132450 <_ZN4core3ptr137drop_in_place$LT$core..future..ready..Ready$LT$core..result..Result$LT$async_io..reactor..Reactor$C$core..convert..Infallible$GT$$GT$$GT$17ha1e75c798bb55b87E>)
0x40131f97 <+35>: movi.n a9, 1
0x40131f99 <+37>: s32i.n a9, a1, 28
0x40131f9b <+39>: l32r a9, 0x40117584 (0x402407fc <_ZN10async_lock9once_cell91_$LT$impl$u20$core..convert..From$LT$async_lock..once_cell..State$GT$$u20$for$u20$usize$GT$4from17hbc1082d8f8dd8583E>)
0x40131f9e <+42>: s32i.n a9, a1, 60
0x40131fa0 <+44>: movi a9, 0x1c0
0x40131fa3 <+47>: s32i.n a9, a1, 40
0x40131fa5 <+49>: movi.n a9, 8
0x40131fa7 <+51>: s32i.n a9, a1, 24
0x40131fa9 <+53>: s32i.n a3, a1, 20
0x40131fab <+55>: s32i.n a10, a1, 12
0x40131fad <+57>: jx a8
593 // The event listener we're currently waiting on.
594 let event_listener = EventListener::new();
595
596 pin!(event_listener);
=> 0x40131fbb <+71>: s32i a10, a1, 96
0x40131fbe <+74>: s32i a10, a1, 72
0x40131fca <+86>: l32i.n a9, a1, 24
0x40131fcc <+88>: or a8, a8, a9
0x40131fcf <+91>: s32i a8, a1, 100
0x40131fd2 <+94>: movi.n a8, 36
0x40131fd4 <+96>: addi a9, a1, 64
0x40131fd7 <+99>: or a8, a9, a8
0x40131fda <+102>: s32i.n a8, a1, 52
0x40131fdc <+104>: l32r a2, 0x40117570 (0x4013ed24 <_ZN81_$LT$async_lock..once_cell..State$u20$as$u20$core..convert..From$LT$usize$GT$$GT$4from17h14018687a1022899E>)
0x40131fdf <+107>: movi a8, 0x1c8
0x40131fe2 <+110>: s32i.n a8, a1, 48
0x40131fe4 <+112>: movi.n a8, 0
0x40131fe6 <+114>: s32i.n a8, a1, 56
0x40131fe8 <+116>: movi.n a8, 1
0x40131fea <+118>: s32i.n a8, a1, 44
0x40131fec <+120>: l32r a3, 0x40117574 (0x402407f4 <_ZN67_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h01c1250a54d2a0b9E>)
0x40131fef <+123>: l32r a6, 0x40117578 (0x4024080c <_ZN14event_listener22EventListener$LT$T$GT$12is_listening17h5f202cf316cbf425E>)
0x40131ff2 <+126>: l32r a8, 0x40117580 (0x4013f02c <_ZN14event_listener22EventListener$LT$T$GT$4wait17h3882d3b695efcd12E>)
0x40131ff5 <+129>: s32i.n a8, a1, 36
0x40131ff7 <+131>: l32r a8, 0x4011757c (0x4013f050 <_ZN14event_listener22EventListener$LT$T$GT$6listen17h9ec30a64061dd925E>)
0x40131ffa <+134>: s32i.n a8, a1, 32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment