You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some languages and frameworks (like Go), require that all signals be registered with SA_ONSTACK because they create threads with very small stack sizes. .NET currently does not support this mode. All signal handling in the runtime would have to be audited and rewritten to support executing with SA_ONSTACK.
AaronRobinsonMSFT
changed the title
Support registering all runtime signal handlers with SA_ONSTACK
Support registering all runtime signal handlers with SA_ONSTACKDec 3, 2024
.NET actually uses SA_ONSTACK, but only for the SIGSEGV handler. For other hardware exception signals, a change to optionally use SA_ONSTACK everywhere should be trivial, basically sharing the existing mechanism for switching the stack the .NET handling code runs on back to the real stack. I am not sure about possible extra complexities for other signals like SIGINT, SIGQUIT, SIGABRT, SIGRTMIN, SIGUSR1 etc.
Some languages and frameworks (like Go), require that all signals be registered with
SA_ONSTACK
because they create threads with very small stack sizes. .NET currently does not support this mode. All signal handling in the runtime would have to be audited and rewritten to support executing withSA_ONSTACK
.Go's interop policy
This feature would be nice to have, but is complex to implement.
See https://learn.microsoft.com/dotnet/standard/native-interop/abi-support#golang for our current support policy due to this issue.
The text was updated successfully, but these errors were encountered: