-
Notifications
You must be signed in to change notification settings - Fork 19
Added thread pool for installation #173
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
base: experimental/improved-download-unpacking-installation
Are you sure you want to change the base?
Added thread pool for installation #173
Conversation
@@ -210,10 +224,46 @@ private void InstallFile(SourceFile sourceFile, CancellationToken cancellationTo | |||
throw new FilePathTooLongException(string.Format("Cannot install file {0}, the destination path length has exceeded Windows path length limit (260).", destinationFilePath)); | |||
} | |||
#endif | |||
FileOperations.Move(sourceFile.FullHashPath, destinationFilePath, cancellationToken); | |||
_localMetaData.RegisterEntry(sourceFile.Name, _versionId, sourceFile.Size, isLastEntry); | |||
while (true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please try to modify this code so it uses semaphores - https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore?view=net-5.0
} | ||
} | ||
}); | ||
_localMetaData.RegisterEntry(sourceFile.Name, _versionId, sourceFile.Size, isLastEntry); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be done on thread as well since we cannot assume that thread succeeds and register the entry before it's indeed installed.
@@ -143,7 +145,7 @@ public override void Execute(CancellationToken cancellationToken) | |||
string nameHash; | |||
if (mapHashExtractedFiles.TryGetHash(filePath, out nameHash)) | |||
{ | |||
var sourceFile = new SourceFile(filePath, packageDir.Path, usedSuffix, nameHash, _versionContentSummary.Size); | |||
var sourceFile = new SourceFile(filePath, packageDir.Path, usedSuffix, nameHash, _versionContentSummary.Files[i].Size); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this change related to the thread pool support?
If not please move it to another PR.
No description provided.