Fixed serious bug in MichaelSet::emplace() function
authorkhizmax <libcds.dev@gmail.com>
Thu, 17 Mar 2016 19:49:22 +0000 (22:49 +0300)
committerkhizmax <libcds.dev@gmail.com>
Thu, 17 Mar 2016 19:49:22 +0000 (22:49 +0300)
commitfa32cf17b6f47caa89d15bd5eff197f68e0b4c2d
tree05375ddd4e66b5b7db9856f086da6222a0437dac
parentc7d36d7c48741bbaff1d661fb52e26e8a5b6f69e
Fixed serious bug in MichaelSet::emplace() function
New node was created twice from the arguments by move semantics. However, move semantics may change internal state of the argument. This can lead to an incorrect element in the set and even to an incorrect key that breaks the set logic.
cds/container/impl/lazy_list.h
cds/container/lazy_list_nogc.h
cds/container/lazy_list_rcu.h