-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Closed
Labels
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows
Milestone
Description
Right now killing a task means setting a flag on it in the runtime and checking that flag before and after yielding. There is at least one race condition that could result in the task not being killed and never waking up.
Seems like we should be able to maintain the relationships between tasks just using Rust messages. This is desirable because every bit of synchronization we eliminate from the runtime makes it easier to understand. There are some obstacles to being able to implement this though, primarily that we need to be able to select on multiple ports. Additionally, I don't really envision how reparenting would work.
Metadata
Metadata
Assignees
Labels
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows