I\'m at a junction, I\'m trying to pick one between mutex-lock-based data structure and lock-free ( and possibly wait-free ) data structure.
While digging a little deepe
The C++ standard makes no guarantee that std::atomic
operations are lock-free. However, you can use std::atomic
to find out if the operation of std::atomic
is lock free 29.6.5 [atomics.types.operations.req] paragraph 7:
Returns: True if the object’s operations are lock-free, false otherwise.
If it is not lock-free it will still do the required synchronization but it uses some lock to do so.