On Monday 30 September 2013 16:27:52 Niall Douglas wrote:
Dear Boost Devs,
Last night I may have implemented some Boost macro based support for simple memory transactions. Basically one does this:
STLLockable lockable; ... BOOST_BEGIN_MEMORY_TRANSACTION(lockable) { // Transaction code } BOOST_END_MEMORY_TRANSACTION(lockable)
This can turn into __transaction_relaxed, or Intel TSX falling back onto a spin lock. It's very simple, but it ought to work and with very significant performance improvements on TSX capable hardware.
The problem is that I don't have access to an Intel Haswell CPU to test the code upon. I think its design is correct through introspection, but if a kind Boost dev could lend me access to their Haswell machine via SSH - or even just offer to debug some binaries for me, I would be very grateful.
Just in case you don't find the hardware, you can use SDE: http://software.intel.com/en-us/articles/intel-software-development-emulator