kvark / choir

Task Orchestration Framework
MIT License
52 stars 3 forks source link

Task dependencies are not fully sound #21

Closed kvark closed 2 years ago

kvark commented 2 years ago

Unfortunately try_unwrap can't be used for linear-ish Arc<Task> type finish line. This is because it returns Arc<Task>, which is then dropped anyway without any checks. So there is a race condition that could result in a dependent task not firing. See https://github.com/rust-lang/rust/pull/79665 for the solution that got closed (unfortunately) due to inactivity, also discussion on rust-internals.