Commit bcb2772
committed
gh-137400: Fix a thread-safety issues when profiling all threads
There were a few thread-safety issues when profiling or tracing all
threads via PyEval_SetProfileAllThreads or PyEval_SetTraceAllThreads:
* The loop over thread states could crash if a thread exits concurrently
(in both the free threading and default build)
* The modification of `c_profilefunc` and `c_tracefunc` wasn't
thread-safe on the free threading build.1 parent 470cbe9 commit bcb2772
File tree
8 files changed
+366
-231
lines changed- Include/internal
- Lib/test/test_free_threading
- Python
8 files changed
+366
-231
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
| 28 | + | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
102 | 101 | | |
103 | 102 | | |
104 | 103 | | |
| |||
950 | 949 | | |
951 | 950 | | |
952 | 951 | | |
953 | | - | |
954 | | - | |
| 952 | + | |
| 953 | + | |
955 | 954 | | |
956 | 955 | | |
957 | 956 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
197 | 223 | | |
198 | 224 | | |
199 | 225 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2512 | 2512 | | |
2513 | 2513 | | |
2514 | 2514 | | |
2515 | | - | |
2516 | | - | |
2517 | | - | |
2518 | | - | |
2519 | | - | |
2520 | | - | |
2521 | | - | |
2522 | | - | |
2523 | | - | |
2524 | | - | |
2525 | | - | |
2526 | | - | |
| 2515 | + | |
| 2516 | + | |
| 2517 | + | |
2527 | 2518 | | |
2528 | 2519 | | |
2529 | 2520 | | |
| |||
2543 | 2534 | | |
2544 | 2535 | | |
2545 | 2536 | | |
2546 | | - | |
2547 | | - | |
2548 | | - | |
2549 | | - | |
2550 | | - | |
2551 | | - | |
2552 | | - | |
2553 | | - | |
2554 | | - | |
2555 | | - | |
2556 | | - | |
2557 | | - | |
| 2537 | + | |
| 2538 | + | |
| 2539 | + | |
2558 | 2540 | | |
2559 | 2541 | | |
2560 | 2542 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1040 | 1040 | | |
1041 | 1041 | | |
1042 | 1042 | | |
| 1043 | + | |
| 1044 | + | |
1043 | 1045 | | |
1044 | 1046 | | |
1045 | 1047 | | |
| |||
1939 | 1941 | | |
1940 | 1942 | | |
1941 | 1943 | | |
1942 | | - | |
| 1944 | + | |
| 1945 | + | |
1943 | 1946 | | |
1944 | 1947 | | |
| 1948 | + | |
1945 | 1949 | | |
1946 | 1950 | | |
1947 | | - | |
1948 | | - | |
| 1951 | + | |
1949 | 1952 | | |
1950 | 1953 | | |
1951 | 1954 | | |
1952 | 1955 | | |
1953 | | - | |
1954 | | - | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
1955 | 1959 | | |
1956 | 1960 | | |
1957 | 1961 | | |
1958 | 1962 | | |
1959 | | - | |
1960 | 1963 | | |
1961 | | - | |
1962 | 1964 | | |
1963 | | - | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
1964 | 1968 | | |
1965 | 1969 | | |
1966 | 1970 | | |
| |||
2006 | 2010 | | |
2007 | 2011 | | |
2008 | 2012 | | |
| 2013 | + | |
2009 | 2014 | | |
2010 | 2015 | | |
2011 | 2016 | | |
| |||
2014 | 2019 | | |
2015 | 2020 | | |
2016 | 2021 | | |
2017 | | - | |
2018 | | - | |
2019 | 2022 | | |
2020 | 2023 | | |
2021 | | - | |
2022 | | - | |
| 2024 | + | |
2023 | 2025 | | |
2024 | 2026 | | |
2025 | 2027 | | |
2026 | 2028 | | |
2027 | 2029 | | |
2028 | | - | |
2029 | | - | |
| 2030 | + | |
2030 | 2031 | | |
2031 | 2032 | | |
2032 | 2033 | | |
2033 | 2034 | | |
2034 | 2035 | | |
2035 | | - | |
2036 | | - | |
2037 | | - | |
2038 | | - | |
| 2036 | + | |
2039 | 2037 | | |
2040 | 2038 | | |
2041 | 2039 | | |
2042 | 2040 | | |
2043 | 2041 | | |
| 2042 | + | |
| 2043 | + | |
2044 | 2044 | | |
2045 | 2045 | | |
2046 | 2046 | | |
| |||
2052 | 2052 | | |
2053 | 2053 | | |
2054 | 2054 | | |
2055 | | - | |
2056 | | - | |
2057 | 2055 | | |
2058 | | - | |
2059 | | - | |
| 2056 | + | |
2060 | 2057 | | |
2061 | 2058 | | |
2062 | 2059 | | |
2063 | 2060 | | |
2064 | 2061 | | |
2065 | 2062 | | |
2066 | 2063 | | |
2067 | | - | |
2068 | | - | |
| 2064 | + | |
2069 | 2065 | | |
2070 | 2066 | | |
2071 | 2067 | | |
2072 | | - | |
2073 | | - | |
2074 | | - | |
2075 | | - | |
2076 | | - | |
| 2068 | + | |
2077 | 2069 | | |
2078 | 2070 | | |
2079 | 2071 | | |
| |||
2105 | 2097 | | |
2106 | 2098 | | |
2107 | 2099 | | |
| 2100 | + | |
2108 | 2101 | | |
| 2102 | + | |
2109 | 2103 | | |
2110 | 2104 | | |
2111 | 2105 | | |
2112 | | - | |
2113 | 2106 | | |
2114 | 2107 | | |
2115 | 2108 | | |
| |||
2346 | 2339 | | |
2347 | 2340 | | |
2348 | 2341 | | |
2349 | | - | |
| 2342 | + | |
| 2343 | + | |
| 2344 | + | |
| 2345 | + | |
| 2346 | + | |
2350 | 2347 | | |
2351 | 2348 | | |
2352 | 2349 | | |
| |||
2427 | 2424 | | |
2428 | 2425 | | |
2429 | 2426 | | |
2430 | | - | |
| 2427 | + | |
| 2428 | + | |
| 2429 | + | |
| 2430 | + | |
| 2431 | + | |
2431 | 2432 | | |
2432 | 2433 | | |
2433 | 2434 | | |
| |||
0 commit comments