From 406aea6eadebf2540bb17d0244c14ed973e46b68 Mon Sep 17 00:00:00 2001 From: Michael Bucari-Tovo Date: Tue, 27 Jul 2021 10:23:34 -0600 Subject: [PATCH] More thread safety. --- FileManager/BackgroundFileSystem.cs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/FileManager/BackgroundFileSystem.cs b/FileManager/BackgroundFileSystem.cs index e60bc4cb..66bb76f7 100644 --- a/FileManager/BackgroundFileSystem.cs +++ b/FileManager/BackgroundFileSystem.cs @@ -95,18 +95,24 @@ namespace FileManager private void RemovePath(string path) { - var pathsToRemove = fsCache.Where(p => p.StartsWith(path)).ToArray(); + lock (fsCache) + { + var pathsToRemove = fsCache.Where(p => p.StartsWith(path)).ToArray(); - foreach (var p in pathsToRemove) - fsCache.Remove(p); + foreach (var p in pathsToRemove) + fsCache.Remove(p); + } } private void AddPath(string path) { - if (File.GetAttributes(path).HasFlag(FileAttributes.Directory)) - fsCache.AddRange(Directory.EnumerateFiles(path, SearchPattern, SearchOption)); - else - fsCache.Add(path); + lock (fsCache) + { + if (File.GetAttributes(path).HasFlag(FileAttributes.Directory)) + fsCache.AddRange(Directory.EnumerateFiles(path, SearchPattern, SearchOption)); + else + fsCache.Add(path); + } } #endregion