Skip to content

Simplifications, mostly.

Compare
Choose a tag to compare
@glessard glessard released this 05 Dec 00:19
99eaf0e
  • Changes the default memory ordering parameters in SwiftAtomics. The defaults are now .acquire for loading operations, .release for storing operations, and .acqrel for read-modify-write operations.

  • Removes the load() function on AtomicReference.
    load required locking, and it failed once every several million attempts (under contention), and that just wasn't good enough. (It fails seldom enough that what I thought had been extensive testing prior to version 4.2.0 was in fact insufficient.) There's been a fair bit of trying to fix it in the last year, but nothing has completely worked. The correct solution may require collaboration with Swift's ARC reference-counting runtime, and therefore will have to wait until a similar type appears in the standard library.