Commit ce3d5ec
committed
_io, _winapi: detach on the remaining stopped-holdable lock takes
`TextIOWrapper.__repr__` took `data` directly while every other method takes it
through `lock_opt`, which detaches. `Overlapped` holds `inner` across the
`allow_threads` in `GetOverlappedResult`, and all four of its takes were direct.
A thread stopped by stop-the-world can be holding either mutex, so taking one
while attached left the blocked thread with no safepoint to reach.
Assisted-by: Claude1 parent ed68013 commit ce3d5ec
2 files changed
Lines changed: 19 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4078 | 4078 | | |
4079 | 4079 | | |
4080 | 4080 | | |
4081 | | - | |
| 4081 | + | |
| 4082 | + | |
| 4083 | + | |
| 4084 | + | |
4082 | 4085 | | |
4083 | 4086 | | |
4084 | 4087 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
566 | 566 | | |
567 | 567 | | |
568 | 568 | | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
569 | 578 | | |
570 | 579 | | |
571 | | - | |
| 580 | + | |
572 | 581 | | |
573 | 582 | | |
574 | 583 | | |
575 | 584 | | |
576 | 585 | | |
577 | 586 | | |
578 | 587 | | |
579 | | - | |
| 588 | + | |
580 | 589 | | |
581 | 590 | | |
582 | 591 | | |
| |||
589 | 598 | | |
590 | 599 | | |
591 | 600 | | |
592 | | - | |
| 601 | + | |
593 | 602 | | |
594 | 603 | | |
595 | 604 | | |
596 | 605 | | |
597 | | - | |
598 | | - | |
| 606 | + | |
| 607 | + | |
599 | 608 | | |
600 | 609 | | |
601 | 610 | | |
| |||
0 commit comments