WIP on concurrent_unordered_map
Wip of a complete rearchitecture of concurrent_unordered_map into a pure atomics implementation.
Refactor complete, in the sense it compiles.
wip, at least it runs without crashing, though it's expanding some buckets hugely more than it should.
Added more debug stuff. I am mystified why this is pushing all the nodes to the final buckets. Moving to Windows, it has a much better debugger.
Got it working properly on MSVC thankfully. Performance is about 20x slower than single threaded unordered_map.
Turned GCC optimisation back on
Works, though slowly.
Next attempt, this time at a shared_ptr based map.
Bumped to GCC 4.9 as libstdc++ 4.8 can't cope.
Well it works ... but at 33% of a standard unordered_map. This is becoming frustrating :(
Removed the embedded copy of the value in the iterator. Now at 39% performance.
Removed more stuff. Performance at 48%. This really sucks.
Reverted to pre-shared_ptr edition.
Next attempt!
Fixed silly typos.
Fixed more typos.
Fixed assignment to const problem.
Stupid MSVC barely prints error messages anymore :(
Repeat.