Skip to content
This repository has been archived by the owner on Dec 18, 2018. It is now read-only.

Write chunks async; unblock sync-waits directly #586

Merged
merged 2 commits into from
Jan 20, 2016

Conversation

benaadams
Copy link
Contributor

Resolves waiting issues observed while investigating #572
Also resolves sync-waiting issues observed in #565 (but not the connection issues #567 deals with)

Resolves #590

@benaadams benaadams changed the title Write chunks async Write chunks async; unblock sync waits directly Jan 18, 2016
@benaadams benaadams changed the title Write chunks async; unblock sync waits directly Write chunks async; unblock sync-waits directly Jan 18, 2016
@benaadams
Copy link
Contributor Author

Also see #589

@halter73
Copy link
Member

:shipit: Nice catch.


private struct WaitingTask
{
public bool isSync;
Copy link
Member

Choose a reason for hiding this comment

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

Nit: capitalization.

@benaadams
Copy link
Contributor Author

Re: the threadpool queuing for async vs not for sync blocked at some future point the tcs can use TaskCreationOptions: RunContinuationsAsynchronously dotnet/coreclr#2718 and it will handle both automagically.

@benaadams
Copy link
Contributor Author

The IsSync and queuing SocketOutput tasks to threadpool, should be able to be skipped for 4.6+ and coreclr versions later than tomorrow's. A task post RTM when there is time and the effects can be investigated? (As the current performance characteristics are known)

{
public bool IsSync;
public int BytesToWrite;
public IDisposable CancellationRegistration;
Copy link
Member

Choose a reason for hiding this comment

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

This property isn't used yet.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Clairvoyant? Removed...

@benaadams
Copy link
Contributor Author

Failure as IsLocal removal needs to work through

@halter73
Copy link
Member

Yeah. It might be a while until the packages on the aspnetcidev feed are updated. A lot of our builds are failing on our internal ci due to the transition from dnx to dotnet/cli.

Until then you can change your nuget.config to reference the aspnetvolatiledev feed. That doesn't help with travis/appveyor though 😢 Blame @BrennanConroy 😛

@halter73 halter73 merged commit fa8fe3d into aspnet:dev Jan 20, 2016
@halter73
Copy link
Member

Thanks!

@benaadams benaadams deleted the reduce-sync-over-async branch May 10, 2016 11:05
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants