elemaudio / elemaudio/elementary

Fix transaction semantics

Open
#6 0 comments 0 reactions 1 assignee Claimed by @nick-thompson View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.