On my laptop, after waking up from a suspend, this loop in libtiny_client sometimes loops forever without selecting any of the branches:
loop {
let mut read_buf: [u8; 1024] = [0; 1024];
select! {
cmd = rcv_cmd.next() => {
...
}
bytes = read_half.read(&mut read_buf).fuse() => {
...
}
ping_ev = rcv_ping_evs_fused.next() => {
...
}
}
}
Basically the select! doesn't really select any of the branches, and doesn't panic either. In the next loop it does the same, causing this to loop forever without doing anything.
Not sure if I'm misusing select! here, or this is a select! bug.
It's also a bit hard to reproduce. For example, if I hibernate my desktop and run it again this does not happen. Only on my laptop I was able to reproduce this.