Allow BlockAllOperations to be called from a non-update thread if update has never run

This commit is contained in:
Dean Herbert
2022-01-18 14:30:32 +09:00
parent cf30d48721
commit 2b1c15b6cc

View File

@ -366,17 +366,17 @@ namespace osu.Game.Database
if (isDisposed) if (isDisposed)
throw new ObjectDisposedException(nameof(RealmContextFactory)); throw new ObjectDisposedException(nameof(RealmContextFactory));
if (!ThreadSafety.IsUpdateThread)
throw new InvalidOperationException(@$"{nameof(BlockAllOperations)} must be called from the update thread.");
Logger.Log(@"Blocking realm operations.", LoggingTarget.Database);
try try
{ {
contextCreationLock.Wait(); contextCreationLock.Wait();
lock (contextLock) lock (contextLock)
{ {
if (!ThreadSafety.IsUpdateThread && context != null)
throw new InvalidOperationException(@$"{nameof(BlockAllOperations)} must be called from the update thread.");
Logger.Log(@"Blocking realm operations.", LoggingTarget.Database);
context?.Dispose(); context?.Dispose();
context = null; context = null;
} }