Skip to content

Commit

Permalink
Relaxed data locking strategy for atomic ordering constraints
Browse files Browse the repository at this point in the history
Credit to @DJMcNab for pointing out that my constraints were too tight.
  • Loading branch information
alice-i-cecile committed Jan 15, 2022
1 parent 3431c21 commit c9ab553
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion rfcs/45-stageless.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,8 @@ Like the atom, they are indivisible: nothing can get between them!
To be fully precise, if we have system `A` that runs "atomically before" system `B` (`.add_system(a.atomically_before(b))`):

- `A` is strictly before `B`
- the data locks (in terms of read and write accesses to the `World`) of system `A` will not be released until system `B` has completed
- the "write" data locks of system `A` are relaxed to "read" data locks upon system `A`'s completion
- "read" data locks of system `A` will not be released until system `B` (and all other atomic dependents) has completed
- the data locks from system `A` are ignored for the purposes of checking if system `B` can run
- after all, they're not actualy locked, merely reserved
- competing read-locks caused by other systems will still need to complete before a data store can be mutated; the effect is to "ignore the locks of `A`", not "skip the check completely"
Expand Down

0 comments on commit c9ab553

Please sign in to comment.