Julian Brost 33a52d8655 Replace EventuallyAtomic with AtomicOrLocked which falls back to a mutex
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.
2022-06-14 12:23:04 +02:00
..
2020-06-09 12:03:02 +02:00
2020-02-11 16:47:50 +01:00
2019-11-02 14:00:23 +01:00
2019-04-09 11:26:34 +02:00