Compare commits
3 Commits
1.12.1-bet
...
1.11.9
| Author | SHA1 | Date | |
|---|---|---|---|
| ce81371a23 | |||
|
|
0f72ec4e46 | ||
|
|
328914df03 |
@@ -583,7 +583,14 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.LogWarning(ex, "Failed validating {path}", workload.ResolvedFilepath);
|
if (workload != null)
|
||||||
|
{
|
||||||
|
Logger.LogWarning(ex, "Failed validating {path}", workload.ResolvedFilepath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.LogWarning(ex, "Failed validating unknown workload");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Interlocked.Increment(ref _currentFileProgress);
|
Interlocked.Increment(ref _currentFileProgress);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,21 +180,32 @@ public sealed class FileCacheManager : IHostedService
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var cleanedPaths = paths.Distinct(StringComparer.OrdinalIgnoreCase).ToDictionary(p => p,
|
var cleanedPaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
p => p.Replace("/", "\\", StringComparison.OrdinalIgnoreCase)
|
foreach (var p in paths)
|
||||||
|
{
|
||||||
|
var cleaned = p.Replace("/", "\\", StringComparison.OrdinalIgnoreCase)
|
||||||
.Replace(_ipcManager.Penumbra.ModDirectory!, _ipcManager.Penumbra.ModDirectory!.EndsWith('\\') ? PenumbraPrefix + '\\' : PenumbraPrefix, StringComparison.OrdinalIgnoreCase)
|
.Replace(_ipcManager.Penumbra.ModDirectory!, _ipcManager.Penumbra.ModDirectory!.EndsWith('\\') ? PenumbraPrefix + '\\' : PenumbraPrefix, StringComparison.OrdinalIgnoreCase)
|
||||||
.Replace(_configService.Current.CacheFolder, _configService.Current.CacheFolder.EndsWith('\\') ? CachePrefix + '\\' : CachePrefix, StringComparison.OrdinalIgnoreCase)
|
.Replace(_configService.Current.CacheFolder, _configService.Current.CacheFolder.EndsWith('\\') ? CachePrefix + '\\' : CachePrefix, StringComparison.OrdinalIgnoreCase)
|
||||||
.Replace("\\\\", "\\", StringComparison.Ordinal),
|
.Replace("\\\\", "\\", StringComparison.Ordinal);
|
||||||
StringComparer.OrdinalIgnoreCase);
|
|
||||||
|
if (!cleanedPaths.ContainsValue(cleaned))
|
||||||
|
{
|
||||||
|
_logger.LogDebug("Adding to cleanedPaths: {cleaned}", cleaned);
|
||||||
|
cleanedPaths[p] = cleaned;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Duplicated found: {cleaned}", cleaned);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Dictionary<string, FileCacheEntity?> result = new(StringComparer.OrdinalIgnoreCase);
|
Dictionary<string, FileCacheEntity?> result = new(StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
var dict = _fileCaches.SelectMany(f => f.Value)
|
var dict = _fileCaches.SelectMany(f => f.Value).Distinct()
|
||||||
.ToDictionary(d => d.PrefixedFilePath, d => d, StringComparer.OrdinalIgnoreCase);
|
.ToDictionary(d => d.PrefixedFilePath, d => d, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
foreach (var entry in cleanedPaths)
|
foreach (var entry in cleanedPaths)
|
||||||
{
|
{
|
||||||
//_logger.LogDebug("Checking {path}", entry.Value);
|
_logger.LogDebug("Checking if in cache: {path}", entry.Value);
|
||||||
|
|
||||||
if (dict.TryGetValue(entry.Value, out var entity))
|
if (dict.TryGetValue(entry.Value, out var entity))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user