-
Notifications
You must be signed in to change notification settings - Fork 912
Wishlist
Ayke edited this page Nov 2, 2018
·
5 revisions
Some wishlist items, from "critical in most applications" to "nice to have". In no particular order.
It is possible, but not really on the roadmap. Multithreading is very hard to get right: both the runtime and packages like sync need to be aware of it. They currently are not.
Here are roughly the required steps:
- Implement channels
- Implement blocking I/O with a different goroutines taking over when the current one is blocked
- Implement safe interrupt handling on MCUs: this is like a really primitive form of threads (think Unix signals) that can be temporarily disabled for atomic behavior
- Implement goroutines with a real separate stack - they currently share the same stack using some compiler magic (there should be a compiler flag to choose this)
- Try running multiple goroutines at the same time in different threads - of course this should also be an option to not increase code size when not needed
In any case, the fact that some programs can run goroutines in parallel should not increase code size in single-threaded builds.