In my async server tokio event loop is not functioning well:
tokio::time::delay_for(Duration::from_secs(1)).await;
takes sometimes 30 seconds, sometimes over a minute. Clearly, some other part of the program is misbehaving, probably running slow code synchronously.
How can I find what is causing this?
Ideally, I'm looking for some method that doesn't require manually instrumenting code. For example, does tokio have any built-in warnings about long blocking poll()
calls?