Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
1. Dispatch all tail calls under TailCallStress via helpers. That increases our coverage since valid non-tail-prefixed calls are dispatched as fast calls in normal non-stress mode. 2. Don't attempt to tail call from methods that have a localloc unless there is an explicit tail prefix. Note that we already disallowed fast tail calls from such methods so this change only affects tailcallstress mode. 3. Fix a bug in TestInvokeDOPAndCancel. As the test was written this assert was firing under tailcallstress: https://github.com/dotnet/runtime/blob/480c49b2419ab4a0b34bfd86754abc2f17079c77/src/libraries/System.Threading.Tasks.Parallel/tests/ParallelForTests.cs#L1074 When this call to `cts.Cancel`: https://github.com/dotnet/runtime/blob/480c49b2419ab4a0b34bfd86754abc2f17079c77/src/libraries/System.Threading.Tasks.Parallel/tests/ParallelForTests.cs#L1065 is dispatched via helpers, it takes much longer than when it's dispatched via a fast tail call (we have to jit a couple of IL stubs). Because of that, it's possible that all other actions complete on the other thread before cancellation is completed.
- Loading branch information