-
Notifications
You must be signed in to change notification settings - Fork 978
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
TarInputStream does not run synchronously when used non-async #788
Comments
https://sharplab.io/ is a good place to see the generated Async-StateMachine. It's just a bit of work to get all the relevant classes into one file to get an overview. |
I copied all relevant classes used by If someone wants to take a look... I don't know, when I have the time for it. |
Just for reference, this is how a "async with isAsync" method should work: As you can see in the output, the goto just skips the entire state-machine logic and, most importantly, does not call |
Found it by stepping through my sample app until the current thread-id switched. There were two places where a |
This is a follow up from #786.
TarInputStream.GetNextEntry()
seems to use the thread pool to run "asynchronously", even though it should be fully sync.The async implementation takes an
isAsync
argument that should make it run totally synchronous when passed withfalse
.As of #787, deadlocks are avoided using
.ConfigureAwait(false)
, but there is still a bug somewhere that caused this to happen in the first place.The text was updated successfully, but these errors were encountered: