diff --git a/FreeTubeSyncer/REST/Syncer.cs b/FreeTubeSyncer/REST/Syncer.cs index 0726331..d80a2cb 100644 --- a/FreeTubeSyncer/REST/Syncer.cs +++ b/FreeTubeSyncer/REST/Syncer.cs @@ -213,13 +213,17 @@ public class Syncer : ISyncer where T : class, IDataModel, new() foreach (var entry in _entries) json.Add(entry.JsonData()); _watcher.Locked = true; - using (var fh = File.OpenWrite(_dbPath)) + var tmpfile = Path.GetTempFileName(); + using (var fh = File.OpenWrite(tmpfile)) { foreach (var line in json) fh.Write(Encoding.UTF8.GetBytes(line + "\n")); fh.Flush(); } + File.Delete(_dbPath); + File.Move(tmpfile, _dbPath); + Task.Delay(100).Wait(); _watcher.Locked = false; Log.Information("Updated {DbName}, completed in {TimeSpan}", _dbName, DateTime.Now - start);