Commit e4e8360
[vm, isolates] Avoid three-way deadlock during isolate exit.
Running mutator
holds safepoint operation scope starting old space GC
waiting for old space tasks to reach 0
Concurrent marker
holds old space tasks > 0
waiting for isolates_list_ lock to interrupt for finalization
Exiting mutator
holds isolates_list_ lock_ to unregister isolate
waiting for safepoint to end TransitionVMToBlocked
Reorder isolate [un]registeration to not need safepoint transition to acquire the isolates_list_ lock.
TEST=ci
Bug: #59574
Change-Id: Ia98fabd654c880b253893a0598d2e26ed77f52da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/397660
Reviewed-by: Alexander Aprelev <[email protected]>
Commit-Queue: Ryan Macnak <[email protected]>1 parent 343ffd1 commit e4e8360
3 files changed
+13
-23
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
454 | 454 | | |
455 | 455 | | |
456 | 456 | | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | 457 | | |
463 | 458 | | |
464 | 459 | | |
| |||
1850 | 1845 | | |
1851 | 1846 | | |
1852 | 1847 | | |
1853 | | - | |
1854 | | - | |
1855 | | - | |
1856 | | - | |
1857 | | - | |
1858 | | - | |
1859 | | - | |
1860 | | - | |
1861 | 1848 | | |
1862 | 1849 | | |
1863 | 1850 | | |
| |||
1885 | 1872 | | |
1886 | 1873 | | |
1887 | 1874 | | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
1888 | 1883 | | |
1889 | 1884 | | |
1890 | 1885 | | |
| |||
2619 | 2614 | | |
2620 | 2615 | | |
2621 | 2616 | | |
2622 | | - | |
2623 | | - | |
2624 | | - | |
2625 | | - | |
2626 | 2617 | | |
2627 | 2618 | | |
2628 | 2619 | | |
2629 | 2620 | | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
2630 | 2626 | | |
2631 | 2627 | | |
2632 | 2628 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
330 | | - | |
331 | | - | |
332 | 330 | | |
333 | 331 | | |
334 | 332 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | 62 | | |
67 | 63 | | |
68 | 64 | | |
| |||
0 commit comments