id summary reporter owner description type status milestone component version severity resolution keywords cc 8730 Race condition in once_block.hpp Antony Polukhin Andrey Semashev "First of all, `once_block_flag` is not thread safe. `status` variable shall be an atomic variable there. Another issue is `static boost::log::once_block_flag flag_var`. When previous issue will be fixed and `once_block_flag` will become thread safe, keyword `static` will do bad things in C++03. Static variable `foo_type foo` inside method in C++03 is equal to: {{{ // In global namespace bool is_foo_inited = false; char place_for_foo[sizeof(foo_type)]; // in place where a static variable is used if (!is_foo_inited) { new (place_for_foo) foo_type(some parameters); is_foo_inited = true; } return reinterpret_cast(*place_for_foo); }}} Beacuse `is_foo_inited` is not atomic and does not act as a spin-lock during initialization - race conditions are possible. " Bugs closed To Be Determined log Boost 1.54.0 Problem fixed call_once atomics thread log