Brett Simmers
f8290df63f
gh-116738: Make _codecs module thread-safe ( #117530 )
...
The module itself is a thin wrapper around calls to functions in
`Python/codecs.c`, so that's where the meaningful changes happened:
- Move codecs-related state that lives on `PyInterpreterState` to a
struct declared in `pycore_codecs.h`.
- In free-threaded builds, add a mutex to `codecs_state` to synchronize
operations on `search_path`. Because `search_path_mutex` is used as a
normal mutex and not a critical section, we must be extremely careful
with operations called while holding it.
- The codec registry is explicitly initialized as part of
`_PyUnicode_InitEncodings` to simplify thread-safety.
2024-05-02 18:25:36 -04:00
..
2024-05-02 08:55:29 -07:00
2024-04-18 20:50:09 -07:00
2024-04-04 15:47:26 +00:00
2024-01-16 09:32:01 +00:00
2024-01-16 09:32:01 +00:00
2024-05-02 08:55:29 -07:00
2023-09-30 22:21:20 +00:00
2024-03-28 09:28:39 -04:00
2024-05-02 16:17:59 +01:00
2024-05-01 22:18:31 +01:00
2024-04-30 11:38:05 -07:00
2024-04-30 18:26:34 -07:00
2024-05-02 18:25:36 -04:00
2024-05-02 06:32:20 -07:00
2024-02-02 13:50:51 +00:00
2024-04-02 20:35:52 +00:00
2024-02-16 01:01:36 +00:00
2023-11-08 15:39:29 -07:00
2024-02-13 14:56:49 -07:00
2024-04-10 18:37:01 -06:00
2024-04-11 23:23:25 +00:00
2024-04-01 13:02:07 +00:00
2023-10-04 22:50:29 +00:00
2023-10-04 22:50:29 +00:00
2023-10-04 22:50:29 +00:00
2023-10-04 22:50:29 +00:00
2023-09-08 17:54:45 +01:00
2023-09-15 15:04:21 -07:00
2024-04-30 17:55:15 +03:00
2024-05-02 16:17:59 +01:00
2024-04-30 22:32:55 +02:00
2024-04-04 15:47:26 +00:00
2024-05-01 21:51:40 +01:00
2024-03-18 11:13:11 -07:00
2024-03-21 18:20:20 -06:00
2024-05-02 06:32:20 -07:00
2024-04-29 20:26:26 +00:00
2024-02-14 00:32:51 +00:00
2024-04-02 11:59:21 +01:00
2024-05-02 13:10:31 +01:00
2024-04-23 13:15:15 +02:00
2024-01-16 21:54:05 +01:00
2023-09-29 10:56:49 +02:00
2023-12-06 15:09:22 +01:00
2024-05-01 17:40:28 -06:00
2024-05-01 17:40:28 -06:00
2024-04-02 20:35:52 +00:00
2024-04-26 17:20:30 +01:00
2024-04-30 18:26:34 -07:00
2024-04-03 01:10:26 +00:00
2023-11-14 00:31:02 +00:00
2024-05-01 08:05:53 -07:00
2024-04-29 09:54:52 +01:00
2024-04-30 15:01:28 -04:00
2024-04-19 14:56:33 -04:00
2023-10-11 14:44:06 +03:00
2023-09-03 18:54:27 +02:00
2024-02-16 01:01:36 +00:00
2024-03-08 00:21:21 +08:00
2024-04-30 18:26:34 -07:00
2024-04-30 11:33:13 +01:00
2024-05-02 13:10:31 +01:00
2024-05-02 16:17:59 +01:00
2024-05-02 16:17:59 +01:00
2024-04-23 10:20:14 -07:00
2024-04-18 15:20:38 +02:00
2023-12-21 19:28:55 +00:00
2024-03-22 20:19:10 +02:00
2024-04-30 18:26:34 -07:00
2024-05-02 18:25:36 -04:00
2023-09-02 23:15:54 +02:00
2023-09-06 15:56:08 +02:00
2024-03-28 11:30:31 +01:00
2023-12-11 11:44:22 +00:00
2024-05-02 16:43:03 +03:00
2024-05-01 18:05:01 +00:00
2024-03-08 12:39:53 -05:00
2024-05-02 16:17:59 +01:00
2024-05-01 12:27:06 -06:00
2024-02-11 12:45:58 +02:00
2024-01-11 20:31:24 +02:00
2024-04-28 06:21:28 -07:00
2024-05-02 13:51:28 -04:00
2024-02-28 13:58:25 +00:00
2023-11-04 13:59:24 +00:00
2024-03-16 11:10:37 +01:00
2024-02-21 11:46:00 +01:00
2024-03-13 23:53:32 +01:00
2024-04-12 13:56:41 +03:00
2024-05-02 19:30:00 +02:00
2023-11-01 22:55:10 +00:00