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

Add new Task-based socket methods for UDP and reimplement existing ones using SocketAsyncEventArgs #47229

Merged
merged 48 commits into from
Jan 27, 2021

Conversation

antonfirsov
Copy link
Member

Closes #41502, but does not change the existing APM methods, I plan to do it in a follow-up PR.

The PR is built on @geoffkizer's branch, almost all product code changes were written by him, I just added a bunch of tests, fixed an issue with Windows cancellation (4e4add1), and moved extension methods to the Socket class as per #43901.

As such, the product code needs a third pair of yes to review. @stephentoub maybe?

@antonfirsov antonfirsov changed the title Add new Task-based socket methods for UDP, and reimplement existing ones using SocketAsyncEventArgs Add new Task-based socket methods for UDP and reimplement existing ones using SocketAsyncEventArgs Jan 25, 2021
@antonfirsov
Copy link
Member Author

@geoffkizer can you please take another look at the tests, and give a final approval if things look OK?

I had to delete my SendTo cancellation test, since it looks like there is no reliable way to enforce sendto to return EWOULDBLOCK. Flooding the kernel works on some Linuxes, but not on others, and does not work on Mac.

I opened a bunch of issues for the corner cases discovered, and referenced them in my test workarounds. Most of them are minor compatibility cases, except the first one, which is actually concerning: #47342, #47335, #47469, #47425

@antonfirsov

This comment has been minimized.

@azure-pipelines

This comment has been minimized.

Copy link
Contributor

@geoffkizer geoffkizer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small nit above, otherwise LGTM.

@antonfirsov
Copy link
Member Author

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@antonfirsov
Copy link
Member Author

OuterLoop test failures are unrelated: #46619, #43207, #40798, #47528

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

Successfully merging this pull request may close these issues.

Sockets: Reimplement remaining Task-based async methods using SocketAsyncEventArgs
4 participants