1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 18:07:23 +08:00

Use helper method for backup retry attempts

This commit is contained in:
Dean Herbert 2024-04-29 10:35:37 +08:00
parent b262497083
commit a4bc5a8fc9
No known key found for this signature in database

View File

@ -35,6 +35,7 @@ using osu.Game.Rulesets.Mods;
using osu.Game.Scoring;
using osu.Game.Scoring.Legacy;
using osu.Game.Skinning;
using osu.Game.Utils;
using osuTK.Input;
using Realms;
using Realms.Exceptions;
@ -1157,33 +1158,18 @@ namespace osu.Game.Database
{
Logger.Log($"Creating full realm database backup at {backupFilename}", LoggingTarget.Database);
int attempts = 10;
while (true)
FileUtils.AttemptOperation(() =>
{
try
using (var source = storage.GetStream(Filename, mode: FileMode.Open))
{
using (var source = storage.GetStream(Filename, mode: FileMode.Open))
{
// source may not exist.
if (source == null)
return;
// source may not exist.
if (source == null)
return;
using (var destination = storage.GetStream(backupFilename, FileAccess.Write, FileMode.CreateNew))
source.CopyTo(destination);
}
return;
using (var destination = storage.GetStream(backupFilename, FileAccess.Write, FileMode.CreateNew))
source.CopyTo(destination);
}
catch (IOException)
{
if (attempts-- <= 0)
throw;
// file may be locked during use.
Thread.Sleep(500);
}
}
}, 20);
}
/// <summary>