Skip to content

Fix transaction semantics #6

@nick-thompson

Description

@nick-thompson

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?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions