3 ms·
What happens if you need to do computational work on a go routine? Isn’t that going to block the carrier thread and then murder throughput?
by vips7L 4y ago
What happens if you need to do computational work on a go routine? Isn’t that going to block the carrier thread and then murder throughput?
- IshKebab 4y agoYes, you have to manually insert yield points. Exactly the same as with every cooperative threading system, including Lunatic and Rust's native async/await. Kind of feels like we need user space preemptive threading somehow.
- vips7L 4y agoOr just the ability to use native os thread pools for that type of work.
- smasher164 4y agoGo has asynchronous preemption now using signals. Tight loops are preemptible.