From 1facca84bab1efeaf29e26550ebbc1324a9b5f8a Mon Sep 17 00:00:00 2001 From: glax Date: Fri, 21 Apr 2023 11:01:05 +0200 Subject: [PATCH] Prevent multiple processes from reading same file. --- Pathfinding/RegionManager.cs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Pathfinding/RegionManager.cs b/Pathfinding/RegionManager.cs index 01d491e..cd572ef 100644 --- a/Pathfinding/RegionManager.cs +++ b/Pathfinding/RegionManager.cs @@ -39,11 +39,21 @@ namespace Pathfinding { if (!File.Exists(filePath)) return null; - - FileStream regionFile = new (filePath, FileMode.Open); - Region retRegion = JsonSerializer.Deserialize(regionFile, Region.serializerOptions)!; - regionFile.Dispose(); - return retRegion; + + while (true) + { + + try + { + FileStream regionFile = new (filePath, FileMode.Open); + Region retRegion = JsonSerializer.Deserialize(regionFile, Region.serializerOptions)!; + regionFile.Dispose(); + return retRegion; + }catch(IOException) + { + Thread.Sleep(10); + } + } } private Region? RegionFromId(ulong regionId)