Merge branch 'master' into realm-nested-context-creation-deadlock-fix

This commit is contained in:
Dan Balasescu
2021-11-30 18:01:00 +09:00
committed by GitHub
17 changed files with 252 additions and 47 deletions

View File

@ -453,13 +453,12 @@ namespace osu.Game.Database
/// <param name="model">The item to operate on.</param>
/// <param name="file">The existing file to be replaced.</param>
/// <param name="contents">The new file contents.</param>
/// <param name="filename">An optional filename for the new file. Will use the previous filename if not specified.</param>
public void ReplaceFile(TModel model, TFileModel file, Stream contents, string filename = null)
public void ReplaceFile(TModel model, TFileModel file, Stream contents)
{
using (ContextFactory.GetForWrite())
{
DeleteFile(model, file);
AddFile(model, contents, filename ?? file.Filename);
AddFile(model, contents, file.Filename);
}
}

View File

@ -15,8 +15,7 @@ namespace osu.Game.Database
/// <param name="model">The item to operate on.</param>
/// <param name="file">The existing file to be replaced.</param>
/// <param name="contents">The new file contents.</param>
/// <param name="filename">An optional filename for the new file. Will use the previous filename if not specified.</param>
void ReplaceFile(TModel model, TFileModel file, Stream contents, string filename = null);
void ReplaceFile(TModel model, TFileModel file, Stream contents);
/// <summary>
/// Delete an existing file.

View File

@ -17,7 +17,7 @@ namespace osu.Game.Database
{
public Guid ID { get; }
public bool IsManaged { get; }
public bool IsManaged => data.IsManaged;
private readonly SynchronizationContext? fetchedContext;
private readonly int fetchedThreadId;
@ -37,8 +37,6 @@ namespace osu.Game.Database
if (data.IsManaged)
{
IsManaged = true;
fetchedContext = SynchronizationContext.Current;
fetchedThreadId = Thread.CurrentThread.ManagedThreadId;
}

View File

@ -49,13 +49,13 @@ namespace osu.Game.Database
return mapper.Map<T>(item);
}
public static List<RealmLive<T>> ToLive<T>(this IEnumerable<T> realmList)
public static List<ILive<T>> ToLive<T>(this IEnumerable<T> realmList)
where T : RealmObject, IHasGuidPrimaryKey
{
return realmList.Select(l => new RealmLive<T>(l)).ToList();
return realmList.Select(l => new RealmLive<T>(l)).Cast<ILive<T>>().ToList();
}
public static RealmLive<T> ToLive<T>(this T realmObject)
public static ILive<T> ToLive<T>(this T realmObject)
where T : RealmObject, IHasGuidPrimaryKey
{
return new RealmLive<T>(realmObject);