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
..
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2021-07-08 14:53:15 +02:00
2020-02-11 17:26:15 +01:00
2019-02-25 14:48:22 +01:00
2020-06-09 12:35:04 +02:00
2019-07-12 14:36:55 +02:00
2019-07-12 14:36:55 +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
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-07-08 14:53:15 +02:00
2019-02-25 14:48:22 +01:00
2022-03-29 16:36:50 +02:00
2019-08-13 15:05:47 +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
2019-04-16 15:04:57 +02:00
2019-04-16 15:04:57 +02:00
2019-04-16 15:04:57 +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
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
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-04-07 11:30:50 +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
2021-07-08 14:53:15 +02:00
2021-07-08 14:53:15 +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
2019-02-25 14:48:22 +01:00
2019-10-21 17:10:51 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-07-09 13:20:53 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2020-06-17 10:31:40 +02:00
2020-06-17 10:31:40 +02:00
2019-10-21 17:10:51 +02:00
2019-03-18 15:07:57 +01:00
2019-02-25 14:48:22 +01:00
2019-05-24 16:25:32 +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-09-06 09:24:34 +02:00
2019-02-25 14:48:22 +01:00
2019-02-25 14:48:22 +01:00
2019-10-21 17:10:51 +02:00
2019-02-25 14:48:22 +01:00
2019-10-21 17:10:51 +02:00
2019-10-21 17:10:51 +02:00
2019-10-21 16:12:35 +02:00
2019-10-21 16:12:35 +02:00
2019-02-25 14:48:22 +01:00
2019-05-29 14:17:36 +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
2019-04-24 12:10:57 +02:00
2019-04-17 18:26:29 +02:00
2019-04-17 18:26:29 +02:00
2019-04-17 18:26:29 +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
2019-02-25 14:48:22 +01:00
2020-11-27 11:32:10 +01:00
2020-11-27 11:32:10 +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-02-25 14:48:22 +01:00
2019-10-21 17:10:51 +02:00
2019-02-25 14:48:22 +01:00
2019-10-21 17:10:51 +02:00
2019-02-25 14:48:22 +01:00
2019-11-08 11:13:26 +01:00
2019-11-08 11:13:26 +01:00
2019-05-01 12:09:24 +02:00
2019-06-28 09:07:33 +02:00
2019-10-21 17:10:51 +02:00
2019-10-21 11:07:42 +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-07-08 14:53:15 +02:00
2021-07-08 14:53:15 +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
2020-05-15 15:33:37 +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-20 16:27:51 +02:00
2021-05-20 16:27:51 +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-26 11:25:44 +01:00
2019-09-09 15:27:57 +02:00
2019-08-14 17:12:59 +02:00
2019-08-14 17:12:59 +02:00
2019-07-17 13:53:43 +02:00
2019-04-24 11:42:54 +02:00
2021-08-17 16:33:18 +02:00
2020-07-29 15:02:48 +02:00
2022-04-11 12:45:58 +02:00
2022-04-11 12:45:58 +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-05-29 14:17:36 +02:00
2022-04-06 12:44:49 +02:00
2021-07-05 16:18:57 +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
2020-09-22 14:41:11 +02:00
2020-09-22 14:41:11 +02:00