Commit c8bf6c7
committed
LATX, fix: bound final AOT exclusive wait
Final AOT generation runs during process exit and may try to enter an
exclusive section after other threads are already blocked in native/host
code. In that case start_exclusive() can wait forever for CPUs that will
not quiesce.
Add start_exclusive_timeout() and use it only for the final AOT exit
path. If the timeout expires, cancel the pending waiters, skip final AOT,
and return without holding the exclusive section. Normal AOT generation
continues to use the existing blocking start_exclusive() path.
Signed-off-by: Wenqiang Wei <weiwenqiang@mail.ustc.edu.cn>1 parent d3231ca commit c8bf6c7
3 files changed
Lines changed: 107 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
180 | 212 | | |
181 | 213 | | |
182 | 214 | | |
| |||
219 | 251 | | |
220 | 252 | | |
221 | 253 | | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
222 | 307 | | |
223 | 308 | | |
224 | 309 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
912 | 912 | | |
913 | 913 | | |
914 | 914 | | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
915 | 924 | | |
916 | 925 | | |
917 | 926 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1660 | 1660 | | |
1661 | 1661 | | |
1662 | 1662 | | |
| 1663 | + | |
| 1664 | + | |
1663 | 1665 | | |
1664 | 1666 | | |
1665 | 1667 | | |
| |||
1670 | 1672 | | |
1671 | 1673 | | |
1672 | 1674 | | |
| 1675 | + | |
1673 | 1676 | | |
1674 | 1677 | | |
1675 | | - | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
1676 | 1687 | | |
1677 | 1688 | | |
1678 | 1689 | | |
| |||
1729 | 1740 | | |
1730 | 1741 | | |
1731 | 1742 | | |
1732 | | - | |
| 1743 | + | |
1733 | 1744 | | |
1734 | 1745 | | |
1735 | 1746 | | |
| |||
0 commit comments