From ecf6846255b394b49f94ec9e654ac782758f8170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Domeradzki?= Date: Fri, 5 Apr 2024 12:29:41 +0200 Subject: [PATCH] Misc --- ArchiSteamFarm/Core/Utilities.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ArchiSteamFarm/Core/Utilities.cs b/ArchiSteamFarm/Core/Utilities.cs index 817014029..94641f7b9 100644 --- a/ArchiSteamFarm/Core/Utilities.cs +++ b/ArchiSteamFarm/Core/Utilities.cs @@ -53,6 +53,7 @@ public static class Utilities { private const byte MaxSharingViolationTries = 15; private const uint SharingViolationHResult = 0x80070020; private const byte TimeoutForLongRunningTasksInSeconds = 60; + private const uint UnauthorizedAccessHResult = 0x80070005; private static readonly FrozenSet DirectorySeparators = new HashSet(2) { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }.ToFrozenSet(); @@ -469,8 +470,7 @@ public static class Utilities { ASF.ArchiLogger.LogGenericDebuggingException(e); continue; - } catch (UnauthorizedAccessException e) when (i < MaxSharingViolationTries) { - // TODO: What HResult here? + } catch (UnauthorizedAccessException e) when ((i < MaxSharingViolationTries) && ((uint) e.HResult == UnauthorizedAccessHResult)) { // It's entirely possible that old process is still running, we allow this to happen and add additional delay ASF.ArchiLogger.LogGenericDebuggingException(e);