microsoft / verona-rt

The runtime for the Verona project
MIT License
25 stars 14 forks source link

Fix memory model in Asymmetric Lock. #21

Closed mjp41 closed 1 year ago

mjp41 commented 1 year ago

The manipulation of external_lock inside the internal operations needs to use acquire/release semantics.

This PR adds a missing acquire, and tests to be used with TSAN to check that the semantics is "probably" not racy.

This issue was found by Graham Harper.