MacroFake
8f3ab9a1b1
Merge bitcoin/bitcoin#24931 : Strengthen thread safety assertions
...
ce893c0497 doc: Update developer notes (Anthony Towns)
d2852917ee sync.h: Imply negative assertions when calling LOCK (Anthony Towns)
bba87c0553 scripted-diff: Convert global Mutexes to GlobalMutexes (Anthony Towns)
a559509a0b sync.h: Add GlobalMutex type (Anthony Towns)
be6aa72f9f qt/clientmodel: thread safety annotation for m_cached_tip_mutex (Anthony Towns)
f24bd45b37 net_processing: thread safety annotation for m_tx_relay_mutex (Anthony Towns)
Pull request description:
This changes `LOCK(mutex)` for non-global, non-recursive mutexes to be annotated with the negative capability for the mutex it refers to, to prevent . clang applies negative capabilities recursively, so this helps avoid forgetting to annotate functions.
This can't reasonably be used for globals, because clang would require every function to be annotated with `EXCLUSIVE_LOCKS_REQUIRED(!g_mutex)` for each global mutex; so this introduces a trivial `GlobalMutex` subclass of `Mutex`, and reduces the annotations for both `GlobalMutex` to `LOCKS_EXCLUDED` which only catches trivial errors (eg (`LOCK(x); LOCK(x);`).
ACKs for top commit:
MarcoFalke:
review ACK ce893c0497 🐦
hebasto:
ACK ce893c0497
Tree-SHA512: 5c35e8c7677ce3d994a7e3774f4344adad496223a51b3a1d1d3b5f20684b2e1d5cff688eb3fbc8d33e1b9940dfa76e515f9434e21de6f3ce3c935e29a319f529
2022-06-10 16:42:53 +02:00
..
2022-06-02 19:08:43 +02:00
2022-04-22 09:04:39 -05:00
2022-05-28 09:43:02 +01:00
2022-05-26 20:06:10 +02:00
2021-09-29 14:10:29 +02:00
2022-05-04 14:53:46 -04:00
2022-05-23 14:53:35 -04:00
2022-06-02 11:42:12 -04:00
2022-05-19 11:32:56 -04:00
2021-10-05 11:10:47 -04:00
2022-06-08 10:03:43 -03:00
2022-03-02 15:25:48 +01:00
2022-02-16 14:59:20 +02:00
2022-02-04 22:47:49 +08:00
2022-06-06 12:12:03 +02:00
2022-05-31 15:05:57 +02:00
2022-02-19 09:35:10 +01:00
2022-06-10 16:42:53 +02:00
2022-06-10 16:42:53 +02:00
2022-06-04 20:54:20 +01:00
2022-04-06 20:20:30 +01:00
2022-05-17 17:18:58 +01:00
2022-06-07 11:31:10 +02:00
2022-05-30 16:42:13 +02:00
2022-06-10 16:42:53 +02:00
2022-06-10 16:42:53 +02:00
2022-06-06 12:12:03 +02:00
2022-04-26 10:43:33 +01:00
2021-11-12 11:46:34 +01:00
2022-05-17 17:19:07 +01:00
2022-05-12 08:57:22 +02:00
2022-04-20 14:29:29 +01:00
2022-04-20 14:35:52 +01:00
2022-06-08 13:35:32 +02:00
2022-04-20 14:29:29 +01:00
2022-04-14 07:15:22 +02:00
2022-04-14 19:26:22 +02:00
2022-05-20 15:20:42 +02:00
2022-05-20 15:17:00 +02:00
2022-04-27 14:16:35 +02:00
2022-05-21 13:54:33 -05:00
2022-02-25 09:43:54 +01:00
2021-12-06 14:17:41 +13:00
2022-06-02 12:22:46 -04:00
2021-08-17 16:54:47 +08:00
2022-05-20 16:06:07 +02:00
2021-08-17 16:54:47 +08:00
2022-05-18 19:15:03 +02:00
2021-08-17 16:54:47 +08:00
2022-05-30 13:55:39 +02:00
2021-08-17 16:54:47 +08:00
2022-02-22 15:36:19 +00:00
2021-08-17 16:54:47 +08:00
2022-06-02 11:42:12 -04:00
2022-05-17 10:37:10 +01:00
2022-05-17 10:37:10 +01:00
2022-01-06 11:29:55 -05:00
2022-01-25 10:49:46 +01:00
2022-01-31 09:23:54 +01:00
2022-04-11 22:19:46 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-02-22 15:15:27 +01:00
2022-05-12 02:25:55 +10:00
2022-02-22 15:36:19 +00:00
2022-02-22 15:36:19 +00:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-03-29 10:15:33 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-05-21 13:54:33 -05:00
2022-05-04 07:34:47 +02:00
2022-03-30 20:11:15 +01:00
2022-01-07 13:37:47 -05:00
2022-05-25 11:31:58 +02:00
2022-01-02 11:40:31 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-05-10 12:09:33 +10:00
2022-05-10 12:09:33 +10:00
2022-02-16 15:02:26 +02:00
2022-05-07 11:09:52 +02:00
2021-06-16 10:48:58 +02:00
2022-04-21 12:01:00 -05:00
2022-04-28 10:24:06 +02:00
2022-04-21 12:01:00 -05:00
2021-12-30 19:36:57 +02:00
2022-05-21 13:54:33 -05:00
2022-05-18 19:15:03 +02:00
2021-12-30 19:36:57 +02:00
2022-05-25 11:31:58 +02:00
2022-04-06 13:19:36 +01:00
2022-06-06 12:12:03 +02:00
2022-05-12 02:25:55 +10:00
2022-06-10 16:42:53 +02:00
2022-06-02 11:42:12 -04:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-04-27 19:53:37 +02:00
2022-04-27 19:53:37 +02:00
2022-06-02 22:30:30 +08:00
2022-05-25 11:31:58 +02:00
2022-06-04 20:25:57 +01:00
2022-05-04 20:36:09 +02:00
2022-04-26 16:25:38 -04:00
2022-04-26 16:29:35 -04:00
2021-10-21 09:37:30 +08:00
2022-02-28 16:59:56 +01:00
2022-04-11 16:56:34 -04:00
2022-04-11 16:56:34 -04:00
2022-04-11 16:56:34 -04:00
2022-04-11 16:56:34 -04:00
2022-06-04 20:54:20 +01:00
2021-10-11 20:46:25 +08:00
2022-04-26 10:41:45 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-06-10 16:42:53 +02:00
2022-05-18 18:46:27 +02:00
2022-05-18 19:15:03 +02:00
2021-12-30 19:36:57 +02:00
2022-06-10 16:42:53 +02:00
2022-05-21 01:23:23 +10:00
2022-05-17 17:18:58 +01:00
2022-05-21 13:54:33 -05:00
2022-05-21 01:23:23 +10:00
2022-04-15 09:39:25 +02:00
2022-04-25 15:09:14 +02:00
2022-04-20 14:35:53 +01:00
2021-12-30 19:36:57 +02:00
2022-05-21 13:54:33 -05:00
2022-05-16 16:25:47 +02:00
2021-12-30 19:36:57 +02:00
2022-05-30 13:55:39 +02:00
2022-05-04 11:49:29 +02:00
2022-05-21 13:54:33 -05:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2022-05-17 17:18:58 +01:00
2022-05-12 08:57:22 +02:00
2022-05-01 10:39:40 +01:00
2021-12-30 19:36:57 +02:00
2022-05-18 18:46:48 +02:00
2022-03-10 12:01:53 +01:00
2022-05-17 17:18:58 +01:00
2022-05-12 02:25:55 +10:00
2022-04-26 09:41:45 +01:00
2022-05-02 16:41:30 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-04-26 09:41:45 +01:00
2022-02-09 17:21:04 +01:00
2021-12-30 19:36:57 +02:00
2022-05-21 01:23:23 +10:00
2022-05-12 02:25:55 +10:00
2022-06-10 16:42:53 +02:00
2022-03-02 15:40:30 +01:00
2021-07-05 08:59:38 +03:00
2022-06-06 12:12:03 +02:00
2022-03-15 01:33:52 +00:00
2022-05-17 17:18:58 +01:00
2022-03-10 13:05:29 +01:00
2022-04-14 09:42:22 +02:00
2022-03-21 13:38:08 +01:00
2021-02-27 01:08:09 +10:00
2021-07-20 13:12:42 +01:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2022-06-10 16:42:53 +02:00
2022-06-10 16:42:53 +02:00
2022-05-21 13:54:33 -05:00
2022-05-09 18:35:44 +02:00
2022-05-05 15:55:44 +02:00
2022-05-12 02:25:55 +10:00
2022-01-06 22:14:16 -05:00
2022-05-21 01:23:23 +10:00
2021-12-30 19:36:57 +02:00