Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.NET 6 target support #1909

Closed
WeihanLi opened this issue Nov 15, 2021 · 4 comments
Closed

.NET 6 target support #1909

WeihanLi opened this issue Nov 15, 2021 · 4 comments

Comments

@WeihanLi
Copy link
Contributor

Any plan for adding .NET 6 target? We could get benefits from some new API introduced in .NET 6.

  • WaitAsync for TimeoutAfter extensions
  • Random.Shared for Random usage
  • PeriodicTimer for Timer usage

maybe more ...

@NickCraver
Copy link
Collaborator

We may indeed do a few of these things, at the moment there's another appealing option which is to default to the shared thread pool implementation of the pipe scheduler specifically on net6.0 which has some counter and action changes around sync-over-async blocking which was one of the core reasons our custom threadpool remains today. We're going to try in the alpha changing this and looking at behavior to better scale to various size applications and core counts :)

@NickCraver
Copy link
Collaborator

I've got a PR for .NET 6 in #1939, but I'm not sure about the usages in the issue here - there's a code quality tradeoff because all of them are #if NET6_0_OR_GREATER forks in many places to make them work. If there's a significant win to take it's a good avenue, but past that we'll probably go for simple :)

@NickCraver
Copy link
Collaborator

Heads up: this is being reverted in #1992 due to thread pool issues so no release changes planned at this point. I'll be tracking some things down there with the .NET team.

@NickCraver
Copy link
Collaborator

I'm going to close this out to tidy up - after trying these things out and more importantly how .NET 6 thread pool behaves (specifically not tying into Monitor.Wait() as I assumed), no plans to do a .NET 6 specific build. Maybe down the road, but the split in code isn't worth another TFM :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants