using System; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace Jellyfin.Database.Implementations.Locking; /// /// Default lock behavior. Defines no explicit application locking behavior. /// public class NoLockBehavior : IEntityFrameworkCoreLockingBehavior { private readonly ILogger _logger; /// /// Initializes a new instance of the class. /// /// The Application logger. public NoLockBehavior(ILogger logger) { _logger = logger; } /// public void OnSaveChanges(JellyfinDbContext context, Action saveChanges) { saveChanges(); } /// public void Initialise(DbContextOptionsBuilder optionsBuilder) { _logger.LogInformation("The database locking mode has been set to: NoLock."); } /// public async Task OnSaveChangesAsync(JellyfinDbContext context, Func saveChanges) { await saveChanges().ConfigureAwait(false); } }