Sergei Vinogradov
Sergei Vinogradov
@alexbaden Sorry for the delayed response. I just noticed your comments. Regarding gcc-9, sounds good. As for the status, @misiugodfrey and @paul-aiyedun are working on integrating these changes.
It looks like false-positive. Thread 3 creates a new node while thread 4 changing the value of this node. But thread 4 acquire accessor to the node under the bucket...
I think we also should align concurrent_hash_map design in the same way.
regarding your example, you changing the layout of the structure which contains allocator but not allocator itself. How padding inside allocator would help?
Helgrind reports violation of the lock order during the insert operation. Let's imagine we have the following skip list: ``` layer 3: |----------------->| layer 2: |-------------->|->| layer 1: |----->|---->|->|->| layer...
Actually I tried to disable tracking the lock of the new node, but I have not succeeded. Changing the lock order seems correct and should fix the issue, but as...
I will have a look today.
I think the issue is that we return ```allocator_type``` object by reference (not by value, like std::map) while internally we are using ```node_allocator_type``` object. The easiest solution is to store...
@igchor Do you remember why we decided to return by reference. I remember we had some discussion about that, but I forgot details.
There is third option: Remove get_allocator() method for now. Until we have no use case where it is required I think we can remove it and think how to implement...