id summary reporter owner description type status milestone component version severity resolution keywords cc 13309 function_address_holder::get_module/::get implementations are not thread-safe Daniel Krügler Ion Gaztañaga "The discussion in the git review https://github.com/boostorg/filesystem/pull/59#discussion_r152524074 showed that the implementations of `function_address_holder::get_module` and `function_address_holder::get` are not completely atomic, because the loop conditions {{{ for(unsigned i = 0; ModuleStates[id] < 2; ++i){ }}} and {{{ for(unsigned i = 0; FunctionStates[id] < 2; ++i){ }}} are not using a read barrier for the variables `ModuleStates[id]` and `FunctionStates[id]`. It seems that proper thread-safety using interlocked operations could be realized by emulating an interlocked read-acquire operation via the `BOOST_INTERLOCKED_COMPARE_EXCHANGE(&N, 0, 0)` idiom. I can make a concrete pull request if agreement exists on the approach" Bugs new To Be Determined interprocess Boost 1.63.0 Problem