This is compare-and-swap, the next generation. It's going to be useful.<p>It's a bit vague about what happens when you get contention and a transaction rejects. Try again immediately? Spin and try again? Wait and try again? Wait and try again with exponential backoff? All of the above, in sequence?<p>There are a few spots in Go where the concurrency isn't airtight, such as shared maps. This allows fixing that problem.
What this presentation doesn't mention is that HotSpot supports automatic conversion of synchronised blocks to TSX transactions already. So if you run the latest HotSpots on the latest Intel chips (note: TSX was disabled for some Haswells) then you are already benefiting from this!<p>What people found, if I recall correctly, was that a lot of popular software doesn't benefit much because it wasn't written to reduce data contention, and servers especially often contend on statistics and metrics counters. But the slides show ways to avoid that. Also, the most popular software was often already well optimised to reduce lock contention.