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-17 10:31:40 +02:00
2020-06-17 10:31:40 +02:00
2019-03-18 15:07:57 +01:00
2019-05-24 16:25:32 +02:00
2019-04-24 12:10:57 +02:00
2019-11-08 11:13:26 +01:00
2019-11-08 11:13:26 +01:00
2019-10-21 17:10:51 +02:00
2019-10-21 11:07:42 +02:00
2019-07-17 13:53:43 +02:00
2022-04-06 12:44:49 +02:00