do not paralellize fsw changes

This commit is contained in:
rootdarkarchon
2024-02-14 18:43:28 +01:00
committed by Loporrit
parent 79dbe377d1
commit 08eb1d194a

View File

@@ -249,21 +249,19 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
_ = RecalculateFileCacheSize(); _ = RecalculateFileCacheSize();
if (changes.Any(c => c.Value.ChangeType == WatcherChangeTypes.Deleted)) if (changes.Any(c => c.Value.ChangeType == WatcherChangeTypes.Deleted))
{ {
var threadCount = Math.Clamp((int)(Environment.ProcessorCount / 2.0f), 2, 8); lock (_fileDbManager)
Parallel.ForEach(changes, new ParallelOptions()
{ {
MaxDegreeOfParallelism = threadCount, foreach (var change in changes)
}, {
(change) => Logger.LogDebug("FSW Change: {change} = {val}", change.Key, change.Value);
{ _ = _fileDbManager.GetFileCacheByPath(change.Key);
Logger.LogDebug("FSW Change: {change} = {val}", change.Key, change.Value); }
_ = _fileDbManager.GetFileCacheByPath(change.Key);
});
_fileDbManager.WriteOutFullCsv(); _fileDbManager.WriteOutFullCsv();
}
} }
} }
@@ -295,27 +293,24 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
} }
} }
var threadCount = Math.Clamp((int)(Environment.ProcessorCount / 2.0f), 2, 8); lock (_fileDbManager)
Parallel.ForEach(changes, new ParallelOptions()
{ {
MaxDegreeOfParallelism = threadCount, foreach (var change in changes)
},
(change) =>
{
Logger.LogDebug("FSW Change: {change} = {val}", change.Key, change.Value);
if (change.Value.ChangeType == WatcherChangeTypes.Deleted)
{ {
_fileDbManager.GetFileCacheByPath(change.Key); Logger.LogDebug("FSW Change: {change} = {val}", change.Key, change.Value);
if (change.Value.ChangeType == WatcherChangeTypes.Deleted)
{
_fileDbManager.GetFileCacheByPath(change.Key);
}
else
{
if (change.Value.OldPath != null) _fileDbManager.GetFileCacheByPath(change.Value.OldPath);
_fileDbManager.CreateFileEntry(change.Key);
}
} }
else
{
if (change.Value.OldPath != null) _fileDbManager.GetFileCacheByPath(change.Value.OldPath);
_fileDbManager.CreateFileEntry(change.Key);
}
});
_fileDbManager.WriteOutFullCsv(); _fileDbManager.WriteOutFullCsv();
}
} }
public void InvokeScan() public void InvokeScan()