I thought about this a bit more. It seems like it'd be "obviously sound" as long as setting the flag were Release and loading it were Acquire. (Which is inherent on x86, so that's already something.) But here's another argument for why that mightn't be necessary:https://twitter.com/glaebhoerl/status/996388010122993669 …
-
Show this thread
-
When sending a data structure across a channel, you do not in general need to use Acquire and Release operations on any given part of it to avoid reading stale data. The channel provides the necessary synchronization. The reference counts are part of the data structure. QED.
1 reply 0 retweets 0 likesShow this thread
corvus frugilegus Retweeted David Ungar
So this paper by @senderPath is about an implementation of this idea for Swift, with thanks to @aatxe for a public link: http://sigplan.org/OpenTOC/dls17.html …
Interestingly soundness isn't even discussed; apparently it's that obvious?
Benchmark results are promising!https://twitter.com/senderPath/status/1001528284159475713 …
corvus frugilegus added,
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.