Open CoffeeFlux opened 3 years ago
We discussed on Discord and the theory is that INTERRUPT_ASYNC_REQUESTED_BIT
is never set anymore (except from abort protection blocks via ves_icall_thread_finish_async_abort
) because mono_thread_set_interruption_requested_flags
is never passed sync == FALSE
. And the ves_icall_thread_finish_async_abort
icall should be dead code because there should not be async aborts anymore.
And interruptions are now done in managed via https://github.com/dotnet/runtime/blob/c11604786a85488909ec730ac61641bf4f612332/src/libraries/System.Private.CoreLib/src/System/Threading/WaitSubsystem.ThreadWaitInfo.Unix.cs#L78
So the only thing we need to preserve in native is self-interruptions (and self-aborts? do those work still?) which we use for mono_set_pending_exception
.
This should all be functionally dead code on netcore, and is now decoupled from interruptions.
cc: @lambdageek