Julian Brost abe2dfa763 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-05-03 12:02:46 +02:00
..
2022-03-02 16:39:37 +01:00
2021-09-23 16:08:11 +02:00
2021-09-23 16:08:11 +02:00
2021-09-23 16:08:11 +02:00
2019-05-24 16:25:32 +02:00
2021-06-23 16:57:44 +02:00
2021-02-03 09:54:57 +01:00
2019-11-08 11:13:26 +01:00
2020-12-25 23:27:08 +01:00
2021-02-03 09:54:57 +01:00
2021-02-03 09:54:57 +01:00
2021-02-03 09:54:57 +01:00
2021-02-03 09:54:57 +01:00
2021-02-03 09:54:57 +01:00