Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A cmdlet can use
PowerShellCmdlet.ExecuteInPowerShellThread
to request operations to run in the PowerShell thread and wait for it to be completed. Internally, the action gets executed and we store the exception in theExceptionDispatchInfo
member object instead of throwing it immediately. This is to preserve the stack properly and facilitate diagnostics via Get-Error.If the cmdlet catches that exception and attempts to use the PowerShell thread again, it will end up in a deadlock because the semaphore was never released. This PR release semaphore after throwing the stored exception.
This was the case in
AppxModuleHelper.AddAppxPackageAsUriAsync
whenAdd-AppxPackage
failed installing the package from a url.Microsoft Reviewers: Open in CodeFlow