| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- #pragma warning disable CS1591
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Threading;
 
- using Microsoft.Data.Sqlite;
 
- namespace Emby.Server.Implementations.Data;
 
- public sealed class ManagedConnection : IDisposable
 
- {
 
-     private readonly SemaphoreSlim? _writeLock;
 
-     private SqliteConnection _db;
 
-     private bool _disposed = false;
 
-     public ManagedConnection(SqliteConnection db, SemaphoreSlim? writeLock)
 
-     {
 
-         _db = db;
 
-         _writeLock = writeLock;
 
-     }
 
-     public SqliteTransaction BeginTransaction()
 
-         => _db.BeginTransaction();
 
-     public SqliteCommand CreateCommand()
 
-         => _db.CreateCommand();
 
-     public void Execute(string commandText)
 
-         => _db.Execute(commandText);
 
-     public SqliteCommand PrepareStatement(string sql)
 
-         => _db.PrepareStatement(sql);
 
-     public IEnumerable<SqliteDataReader> Query(string commandText)
 
-         => _db.Query(commandText);
 
-     public void Dispose()
 
-     {
 
-         if (_disposed)
 
-         {
 
-             return;
 
-         }
 
-         if (_writeLock is null)
 
-         {
 
-             // Read connections are managed with an internal pool
 
-             _db.Dispose();
 
-         }
 
-         else
 
-         {
 
-             // Write lock is managed by BaseSqliteRepository
 
-             // Don't dispose here
 
-             _writeLock.Release();
 
-         }
 
-         _db = null!;
 
-         _disposed = true;
 
-     }
 
- }
 
 
  |