Skip to content

Add fences #14

@anlun

Description

@anlun
  • To support acquire-fences one needs to add another per-thread front, ψ_acq​​ .
    The front would store a union of synchronization fronts from messages read by the thread,
    including relaxed reads, which don't use corresponding synchronization fronts in the current version.
    When an acquire-fence is executed, the thread's viewfront will be updated to ψ_acq.
  • For release fences we would need to modify a per-thread write front state component.
    Each thread would explicitly store a front for every observed location instead of storing a pointer
    to the latest release write, which contains the same front, to the location.
    An execution of a release-fence would update these fronts to match the thread's own viewfront.
  • Similarly, an SC-fence, when executed, updates the corresponding thread's viewfront by the
    global SC front.

Also, one would have to adapt the rules for postponed operations accordingly, ie, forbid out-of-order resolving of an acquire-fence and a read from a postponed operation buffer.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions