elemaudio / elemaudio/elementary
Fix transaction semantics
- Dominant language
- C
- Stars
- 513
- Forks
- 46
- PR merge metrics
- No merged PRs in 30d
Description
Briefly touched on in #3, this task is to:
* Correct the transaction logic so that in the event of a runtime error while applying an instruction set we can correctly abort
* Ensure that on `COMMIT_UPDATES` we only rebuild the graph if the active roots have changed
I think that in order to handle the first bullet we'll likely have to split out the setProperty step into (1) validating the incoming property and (2) actually applying it. Perhaps in (2), the actual `setProperty` method should be `noexcept`. This way we can validate all property changes in the instruction set to identify if we can commit the transaction or abort, and then set them. Maybe coincides with a `getPropTypes` method and an automatic runtime type check?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.