Sam Gross
15d9dae14b
Fix data race when using shared variables (free threading) ( #5494 )
...
* Fix data race when using shared variables (free threading)
In the free threading build, there's a race between wrapper re-use and
wrapper deallocation. This can happen with a static variable accessed by
multiple threads.
Fixing this requires using some private CPython APIs: _Py_TryIncref and
_PyObject_SetMaybeWeakref. The implementations of these functions are
included until they're made available as public ("unstable") APIs.
Fixes #5489
* style: pre-commit fixes
* Avoid unused parameter
* Add missing return for default build
* Changes from review
* Assign result to local variable
* s/clang-tidy/ruff
* clang-tidy: static is redundant
* Use 'noqa: B018'
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-16 11:13:21 -08:00
..
2024-11-10 12:17:35 -08:00
2024-06-22 00:55:00 -04:00
2024-10-07 14:12:04 -07:00
2024-10-07 14:12:04 -07:00
2024-12-08 11:30:49 -08:00
2024-11-11 15:35:28 -08:00
2024-11-18 14:39:59 -08:00
2024-06-18 13:54:38 -07:00
2024-06-18 13:54:38 -07:00
2024-09-17 09:47:20 -07:00
2024-06-18 13:54:38 -07:00
2024-10-07 14:12:04 -07:00
2024-11-10 12:17:35 -08:00
2024-09-13 00:18:29 -04:00
2024-09-13 00:18:29 -04:00
2024-08-22 00:27:50 -04:00
2022-02-10 12:17:07 -08:00
2024-06-18 13:54:38 -07:00
2024-11-07 09:32:09 -08:00
2024-11-07 09:32:09 -08:00
2024-08-14 18:21:04 -04:00
2024-05-24 12:26:40 -04:00
2024-10-07 14:12:04 -07:00
2022-02-10 12:17:07 -08:00
2024-09-03 10:51:21 -04:00
2024-11-05 10:14:24 -08:00
2024-11-05 10:14:24 -08:00
2024-04-02 11:14:08 -04:00
2024-07-30 09:18:35 -07:00
2024-10-07 14:12:04 -07:00
2024-10-25 08:28:15 -07:00
2024-10-07 14:12:04 -07:00
2024-10-07 14:12:04 -07:00
2022-02-10 12:17:07 -08:00
2024-06-22 00:55:00 -04:00
2024-10-12 11:19:50 -07:00
2024-11-07 09:32:09 -08:00
2022-02-14 11:36:22 -08:00
2024-06-22 00:55:00 -04:00
2024-03-26 13:57:05 -04:00
2024-06-22 00:55:00 -04:00
2024-06-24 08:59:55 -07:00
2024-10-25 08:28:15 -07:00
2024-09-13 00:18:29 -04:00
2024-09-13 00:18:29 -04:00
2024-09-13 00:18:29 -04:00
2024-10-07 14:12:04 -07:00
2024-04-02 11:14:08 -04:00
2024-10-25 08:28:15 -07:00
2021-09-24 12:08:22 -07:00
2024-10-07 14:12:04 -07:00
2024-12-08 11:30:49 -08:00
2024-12-08 11:30:49 -08:00
2024-04-02 11:14:08 -04:00
2024-06-22 00:55:00 -04:00
2024-08-22 00:27:50 -04:00
2024-10-25 08:28:15 -07:00
2022-12-20 05:34:00 -08:00
2024-07-29 11:10:03 -07:00
2024-10-07 14:12:04 -07:00
2022-02-10 12:17:07 -08:00
2024-11-11 15:35:28 -08:00
2024-06-22 00:55:00 -04:00
2022-02-10 12:17:07 -08:00
2024-10-07 14:12:04 -07:00
2024-09-17 09:47:20 -07:00
2023-08-07 20:48:20 -07:00
2024-10-11 20:36:41 -07:00
2022-02-14 11:36:22 -08:00
2024-10-07 14:12:04 -07:00
2022-10-30 08:57:23 -07:00
2024-10-07 14:12:04 -07:00
2022-02-14 11:36:22 -08:00
2024-11-18 14:39:59 -08:00
2024-11-11 14:51:01 -08:00
2024-11-11 14:51:01 -08:00
2022-02-10 12:17:07 -08:00
2024-06-22 00:55:00 -04:00
2024-11-11 15:35:28 -08:00
2024-11-11 15:35:28 -08:00
2024-07-29 11:10:03 -07:00
2024-12-30 19:53:30 -08:00
2022-02-10 12:17:07 -08:00
2024-10-07 14:12:04 -07:00
2024-11-16 13:45:59 -08:00
2024-11-16 13:45:59 -08:00
2024-11-17 07:56:02 -08:00
2024-11-17 07:56:02 -08:00
2022-05-26 11:07:40 -04:00
2024-06-22 00:55:00 -04:00
2024-08-22 00:27:50 -04:00
2024-10-25 08:28:15 -07:00
2022-11-28 07:39:38 -08:00
2024-10-25 08:28:15 -07:00
2022-05-02 12:39:36 -07:00
2024-11-11 15:35:28 -08:00
2023-11-08 12:44:04 -08:00
2024-06-22 00:55:00 -04:00
2024-12-21 16:22:08 -08:00
2024-12-21 16:22:08 -08:00
2024-08-22 00:27:50 -04:00
2024-11-11 15:35:28 -08:00
2024-08-22 00:27:50 -04:00
2024-10-07 14:12:04 -07:00
2024-04-02 11:14:08 -04:00
2024-10-08 10:49:35 -07:00
2024-12-08 11:30:49 -08:00
2024-12-08 11:30:49 -08:00
2024-08-22 00:27:50 -04:00
2024-06-22 00:55:00 -04:00
2025-01-16 11:13:21 -08:00
2025-01-16 11:13:21 -08:00
2024-10-07 14:12:04 -07:00
2024-06-22 00:55:00 -04:00
2024-08-09 13:28:12 -07:00
2024-08-09 13:28:12 -07:00
2019-06-11 23:28:58 +02:00
2024-06-22 00:55:00 -04:00
2023-04-25 14:03:24 -07:00
2024-06-22 00:55:00 -04:00
2023-04-25 14:03:24 -07:00
2024-06-22 00:55:00 -04:00
2023-04-27 07:24:48 -07:00
2024-06-22 00:55:00 -04:00
2024-08-22 00:27:50 -04:00
2024-10-07 14:12:04 -07:00
2024-08-28 20:55:50 -07:00
2024-08-28 20:55:50 -07:00
2021-07-04 19:58:35 -04:00
2021-01-31 17:29:09 -05:00