Hacker News new | ask | show | jobs
by vips7L 1469 days 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?
1 comments

Yes, 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.

Go has asynchronous preemption now using signals. Tight loops are preemptible.
Or just the ability to use native os thread pools for that type of work.