@angelthorns I guess an alternative could be to use Rust's stock mpsc queues which don't require .await but that is just as heavy weight and might block if the queue is full. Also, a major footgun I found. Never use tokio's RwLock if you can avoid it. Sure, it's Send. But then you can cause a deadlock without even realising it, if you keep the lock held in a coroutine, then .await... if something else tries to use that same lock. BOOM. Deadlock.