12 ms·
Synchronous I/O is actually better than async for many programs, partly because almost all async systems were designed without thinking about priority inversion
by astrange 2y ago
Synchronous I/O is actually better than async for many programs, partly because almost all async systems were designed without thinking about priority inversions and can't resolve them properly. If you have futures, you have this problem.
- astrange 2y agoForgot to say, the correctly designed ones are called "structured concurrency".
- p_ing 2y agoSince the NT kernel is async throughout, it solves this with periodic priority boosts for non-running but runnable threads. I swear, the kernel designers just need to look at NT :-P But we're well beyond a complete rewrite of old kernels, sadly.
- astrange 2y agoThat can work but I think it's cheating. Especially if your scheduling is tied into power management or you have high/low power cores, then boosting the low priority threads will waste power.