Commit 2dda7a4
committed
Rely on stop-the-world and the GIL instead of a dedicated RW mutex.
This solution is much simpler, but will perform a little bit worse.
Instead of using a dedicated lock on the interpreter state, we can
simply use stop-the-world (and the GIL on the default build) to ensure that
no other threads can create pre-finalization callbacks concurrently.1 parent a794188 commit 2dda7a4
File tree
5 files changed
+19
-40
lines changed- Include/internal
- Modules
- Python
5 files changed
+19
-40
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
971 | 971 | | |
972 | 972 | | |
973 | 973 | | |
974 | | - | |
975 | | - | |
976 | | - | |
977 | | - | |
978 | 974 | | |
979 | 975 | | |
980 | 976 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
| 179 | + | |
180 | 180 | | |
181 | | - | |
182 | 181 | | |
183 | 182 | | |
184 | 183 | | |
185 | | - | |
186 | 184 | | |
187 | 185 | | |
188 | 186 | | |
| |||
197 | 195 | | |
198 | 196 | | |
199 | 197 | | |
200 | | - | |
| 198 | + | |
201 | 199 | | |
202 | | - | |
203 | | - | |
204 | 200 | | |
205 | 201 | | |
206 | 202 | | |
207 | 203 | | |
208 | 204 | | |
209 | | - | |
210 | 205 | | |
211 | 206 | | |
212 | 207 | | |
| |||
314 | 309 | | |
315 | 310 | | |
316 | 311 | | |
317 | | - | |
| 312 | + | |
318 | 313 | | |
319 | 314 | | |
320 | 315 | | |
| |||
347 | 342 | | |
348 | 343 | | |
349 | 344 | | |
350 | | - | |
351 | 345 | | |
352 | 346 | | |
353 | 347 | | |
| |||
374 | 368 | | |
375 | 369 | | |
376 | 370 | | |
377 | | - | |
| 371 | + | |
378 | 372 | | |
379 | 373 | | |
380 | 374 | | |
| |||
392 | 386 | | |
393 | 387 | | |
394 | 388 | | |
395 | | - | |
| 389 | + | |
396 | 390 | | |
397 | 391 | | |
398 | 392 | | |
399 | 393 | | |
400 | 394 | | |
401 | | - | |
| 395 | + | |
402 | 396 | | |
403 | 397 | | |
404 | 398 | | |
| |||
1877 | 1871 | | |
1878 | 1872 | | |
1879 | 1873 | | |
1880 | | - | |
| 1874 | + | |
1881 | 1875 | | |
1882 | 1876 | | |
1883 | 1877 | | |
1884 | 1878 | | |
1885 | | - | |
| 1879 | + | |
1886 | 1880 | | |
1887 | 1881 | | |
1888 | 1882 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
199 | | - | |
200 | | - | |
201 | 199 | | |
202 | | - | |
203 | 200 | | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
| 201 | + | |
208 | 202 | | |
209 | 203 | | |
210 | 204 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
785 | 785 | | |
786 | 786 | | |
787 | 787 | | |
788 | | - | |
789 | 788 | | |
790 | 789 | | |
791 | | - | |
792 | 790 | | |
793 | 791 | | |
794 | 792 | | |
| |||
919 | 917 | | |
920 | 918 | | |
921 | 919 | | |
922 | | - | |
| 920 | + | |
923 | 921 | | |
924 | 922 | | |
925 | 923 | | |
| |||
977 | 975 | | |
978 | 976 | | |
979 | 977 | | |
980 | | - | |
981 | | - | |
982 | | - | |
983 | | - | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | 978 | | |
990 | 979 | | |
991 | 980 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2036 | 2036 | | |
2037 | 2037 | | |
2038 | 2038 | | |
| 2039 | + | |
| 2040 | + | |
2039 | 2041 | | |
2040 | 2042 | | |
2041 | 2043 | | |
| |||
2054 | 2056 | | |
2055 | 2057 | | |
2056 | 2058 | | |
2057 | | - | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
2058 | 2062 | | |
2059 | 2063 | | |
2060 | 2064 | | |
2061 | | - | |
2062 | 2065 | | |
2063 | 2066 | | |
2064 | 2067 | | |
| 2068 | + | |
2065 | 2069 | | |
| 2070 | + | |
2066 | 2071 | | |
2067 | 2072 | | |
2068 | 2073 | | |
| |||
2099 | 2104 | | |
2100 | 2105 | | |
2101 | 2106 | | |
2102 | | - | |
| 2107 | + | |
2103 | 2108 | | |
2104 | 2109 | | |
2105 | 2110 | | |
| |||
2490 | 2495 | | |
2491 | 2496 | | |
2492 | 2497 | | |
| 2498 | + | |
2493 | 2499 | | |
2494 | 2500 | | |
2495 | 2501 | | |
| |||
0 commit comments