mirror of
https://github.com/Icinga/icinga2.git
synced 2026-02-03 20:40:17 -05:00
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 | ||