mirror of https://github.com/Icinga/icinga2.git
abe2dfa763
Apparently there was a reason for making the members of generated classes atomic. However, this was only done for some types, others were still accessed using non-atomic operations. For members of type T::Ptr (i.e. intrusive_ptr<T>), this can result in a double free when multiple threads access the same variable and at least one of them writes to the variable. This commit makes use of std::atomic<T> for more T (it removes the additional constraint sizeof(T) <= sizeof(void*)) and uses a type including a mutex for load and store operations as a fallback. |
||
---|---|---|
.. | ||
debug | ||
mkclass | ||
mkembedconfig | ||
mkunity | ||
selinux | ||
syntax | ||
win32 | ||
CMakeLists.txt |