Support registering all runtime signal handlers with `SA_ONSTACK`

Open
#110,368 4 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
csharp

Research direction

The issue names no files or tests. Start with the linked Go interop policy and the .NET ABI support policy, then map the runtime's signal registration and handling paths for an audit. Done means all runtime signal handlers support registration with SA_ONSTACK and the behavior is validated.

Written by the indexing model from the issue text.

Description

area-VM-coreclr feature-request hard-problem

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.

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.

Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/runtime

All issues in dotnet/runtime

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.