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
..
2022-04-19 17:18:06 +02:00
2019-02-25 14:48:22 +01:00
2020-02-06 13:03:04 +01:00
2019-12-10 10:44:23 +01:00
2022-02-18 14:39:48 +01:00
2019-11-21 16:29:26 +01:00
2020-02-11 15:13:25 +01:00
2019-02-25 14:48:22 +01:00
2022-02-24 14:03:57 +01:00
2020-03-04 14:58:32 +01:00
2022-01-19 15:49:02 +01:00
2019-02-25 14:48:22 +01:00
2021-07-07 15:42:20 +02:00
2020-07-29 17:13:41 +02:00
2020-06-09 12:03:02 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2020-02-11 16:47:50 +01:00
2019-08-29 17:04:23 +02:00
2020-02-27 11:46:52 +01:00
2021-05-25 15:58:17 +02:00
2020-08-03 10:04:27 +02:00
2020-01-07 14:26:09 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-11-26 16:07:09 +01:00
2019-11-02 14:00:24 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-03-24 14:04:58 +01:00
2020-02-11 15:13:25 +01:00
2020-02-11 15:13:25 +01:00
2019-02-25 14:48:22 +01:00
2022-01-20 11:45:38 +01:00
2021-05-25 15:59:55 +02:00
2021-07-07 15:42:18 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2021-05-25 15:59:55 +02:00
2019-02-25 14:48:22 +01:00
2019-11-02 14:00:23 +01:00
2019-04-09 11:26:34 +02:00
2022-06-14 12:23:04 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-06-14 12:23:04 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2020-02-11 17:26:15 +01:00
2019-04-16 15:04:57 +02:00
2019-02-26 15:38:15 +01:00
2022-03-07 09:42:21 +01:00
2022-02-22 11:48:44 +01:00
2020-08-13 10:39:55 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-03-24 14:04:58 +01:00
2021-05-25 15:59:29 +02:00
2020-01-07 14:26:07 +01:00
2020-07-29 17:13:41 +02:00
2020-01-07 14:21:06 +01:00
2020-01-07 14:21:06 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-03-24 14:04:58 +01:00
2022-04-19 17:32:56 +02:00
2021-07-07 15:42:18 +02:00
2019-02-25 14:48:22 +01:00
2022-03-24 14:04:58 +01:00
2022-04-01 15:06:47 +02:00
2019-12-03 17:37:51 +01:00
2022-06-14 12:23:04 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-06-14 12:23:04 +02:00
2019-05-01 11:49:07 +02:00
2019-02-25 14:48:22 +01:00
2022-06-14 12:23:04 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-06-14 12:23:04 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2022-06-14 12:23:04 +02:00