"by the way, back on the topic of..." <- > <@jamesmunns:beeper.com> by the way, back on the topic of "maybe async": > > For people who WANT non-async drivers, how are you writing your code? I feel like doing anything non-trivial with blocking code requires SOME kind of concurrency, like RTIC, or an RTOS, or hand writing your own interrupts + state machines, etc. Are there really people who are writing things like that? And if so, how are you making that portable at all? Or am I underestimating how effective a single blocking "executive loop" is? I guess that deeply depends on the use-case. If speed is needed and only a few things need to be done simultaneously state machines might be more efficient. But it gets pretty bad to handle quite fast to drive all the state machines. From effective perspective I can only say that I noticed `rx_fifo.wait_pull().await;` is a lot slower than `while self.rx_fifo.empty() {} let addr = self.rx_fifo.pull();` So if one needs the speed it might be better to not have the overhead. But I am not sure if I really understood the discussion as I did not follow it. :)