mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 16:29:58 +09:00
Fix import cancellation not correctly being forwarded to import notification
This commit is contained in:
@ -156,33 +156,44 @@ namespace osu.Game.Database
|
|||||||
|
|
||||||
bool isLowPriorityImport = tasks.Length > low_priority_import_batch_size;
|
bool isLowPriorityImport = tasks.Length > low_priority_import_batch_size;
|
||||||
|
|
||||||
await Task.WhenAll(tasks.Select(async task =>
|
try
|
||||||
{
|
{
|
||||||
notification.CancellationToken.ThrowIfCancellationRequested();
|
await Task.WhenAll(tasks.Select(async task =>
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
var model = await Import(task, isLowPriorityImport, notification.CancellationToken).ConfigureAwait(false);
|
notification.CancellationToken.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
lock (imported)
|
try
|
||||||
{
|
{
|
||||||
if (model != null)
|
var model = await Import(task, isLowPriorityImport, notification.CancellationToken).ConfigureAwait(false);
|
||||||
imported.Add(model);
|
|
||||||
current++;
|
|
||||||
|
|
||||||
notification.Text = $"Imported {current} of {tasks.Length} {HumanisedModelName}s";
|
lock (imported)
|
||||||
notification.Progress = (float)current / tasks.Length;
|
{
|
||||||
|
if (model != null)
|
||||||
|
imported.Add(model);
|
||||||
|
current++;
|
||||||
|
|
||||||
|
notification.Text = $"Imported {current} of {tasks.Length} {HumanisedModelName}s";
|
||||||
|
notification.Progress = (float)current / tasks.Length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
catch (TaskCanceledException)
|
||||||
catch (TaskCanceledException)
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Logger.Error(e, $@"Could not import ({task})", LoggingTarget.Database);
|
||||||
|
}
|
||||||
|
})).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException)
|
||||||
|
{
|
||||||
|
if (imported.Count == 0)
|
||||||
{
|
{
|
||||||
throw;
|
notification.State = ProgressNotificationState.Cancelled;
|
||||||
|
return imported;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
}
|
||||||
{
|
|
||||||
Logger.Error(e, $@"Could not import ({task})", LoggingTarget.Database);
|
|
||||||
}
|
|
||||||
})).ConfigureAwait(false);
|
|
||||||
|
|
||||||
if (imported.Count == 0)
|
if (imported.Count == 0)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user