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-03-06 09:42:11 -05:00
2023-12-25 19:36:59 +02:00
2024-04-24 16:18:24 +00:00
2024-04-04 14:14:35 -07:00
2024-02-09 17:08:32 -05:00
2024-04-12 07:40:55 +00:00
2023-11-15 16:38:31 +00:00
2024-03-29 13:35:43 -04:00
2024-05-01 22:18:31 +01:00
2024-04-26 01:05:51 +00:00
2024-04-22 12:17:57 -07:00
2024-05-02 18:25:36 -04:00
2024-04-04 15:47:26 +00:00
2023-11-15 16:38:31 +00:00
2024-02-02 13:50:51 +00:00
2024-02-10 00:57:04 +00:00
2024-03-28 15:05:08 +00:00
2024-04-11 23:23:25 +00:00
2024-02-02 12:14:34 +00:00
2024-04-21 22:57:05 -07:00
2023-12-07 13:47:55 +00:00
2024-04-30 22:32:55 +02:00
2024-02-29 08:11:28 -08:00
2024-04-04 15:47:26 +00:00
2024-04-30 19:32:25 +01:00
2024-02-17 10:03:10 +09:00
2024-03-21 12:37:41 -07:00
2024-04-29 14:36:02 -04:00
2024-02-29 08:11:28 -08:00
2024-03-11 11:02:58 -04:00
2024-04-22 18:24:21 -07:00
2024-04-22 18:24:21 -07:00
2023-11-15 16:38:31 +00:00
2024-04-29 09:29:07 -06:00
2024-05-01 17:40:28 -06:00
2024-03-11 11:02:58 -04:00
2024-04-24 09:46:17 +00:00
2024-03-05 09:05:52 -07:00
2024-05-02 18:25:36 -04:00
2024-02-29 08:11:28 -08:00
2024-02-20 09:39:55 +00:00
2024-05-02 13:03:05 -07:00
2024-01-23 11:08:23 -07:00
2024-04-30 15:01:28 -04:00
2024-02-29 08:11:28 -08:00
2024-03-11 22:25:55 +09:00
2023-11-16 12:19:54 -07:00
2024-01-21 01:14:45 +09:00
2024-02-10 00:57:04 +00:00
2024-02-14 00:32:51 +00:00
2024-05-02 19:30:00 +02:00
2024-01-26 19:38:14 -08:00
2024-01-26 19:38:14 -08:00
2024-05-02 13:10:31 +01:00
2024-04-22 13:34:06 +01:00
2024-02-20 16:50:43 +00:00
2024-04-30 12:37:38 -07:00
2024-04-24 16:18:24 +00:00
2024-03-16 21:37:11 +01:00
2023-12-06 15:09:22 +01:00
2024-04-22 12:17:57 -07:00
2024-02-20 13:04:37 -05:00
2024-03-08 09:56:36 -08:00
2024-04-24 16:18:24 +00:00
2024-04-24 16:18:24 +00:00
2024-03-06 09:42:11 -05:00
2024-04-22 18:24:21 -07:00
2024-05-02 19:30:00 +02:00
2024-05-02 19:30:00 +02:00
2024-02-20 16:50:43 +00:00
2024-04-19 00:18:22 +09:00
2024-02-29 08:11:28 -08:00
2024-05-01 04:46:13 +08:00
2024-04-02 10:34:49 +00:00
2024-03-11 16:35:29 +00:00
2024-04-08 12:11:36 -04:00
2024-03-08 00:21:21 +08:00
2024-04-25 13:51:31 +02:00
2023-11-30 11:12:49 +01:00
2024-04-22 18:24:21 -07:00
2024-02-29 08:11:28 -08:00
2024-02-28 09:56:40 +00:00
2024-05-02 13:10:31 +01:00
2024-05-02 13:10:31 +01:00
2024-03-28 15:05:08 +00:00
2024-04-08 10:58:38 -04:00