aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Persistence/SqliteShrinkMemoryTimer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/SqliteShrinkMemoryTimer.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteShrinkMemoryTimer.cs84
1 files changed, 0 insertions, 84 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteShrinkMemoryTimer.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteShrinkMemoryTimer.cs
deleted file mode 100644
index b5a0c10b1..000000000
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteShrinkMemoryTimer.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using MediaBrowser.Model.Logging;
-using System;
-using System.Data;
-using System.Threading;
-
-namespace MediaBrowser.Server.Implementations.Persistence
-{
- class SqliteShrinkMemoryTimer : IDisposable
- {
- private Timer _shrinkMemoryTimer;
-
- private readonly SemaphoreSlim _writeLock;
- private readonly ILogger _logger;
- private readonly IDbConnection _connection;
-
- public SqliteShrinkMemoryTimer(IDbConnection connection, SemaphoreSlim writeLock, ILogger logger)
- {
- _connection = connection;
- _writeLock = writeLock;
- _logger = logger;
-
- _shrinkMemoryTimer = new Timer(TimerCallback, null, TimeSpan.FromMinutes(30), TimeSpan.FromMinutes(10));
- }
-
- private async void TimerCallback(object state)
- {
- await _writeLock.WaitAsync(CancellationToken.None).ConfigureAwait(false);
-
- IDbTransaction transaction = null;
-
- try
- {
- transaction = _connection.BeginTransaction();
-
- using (var cmd = _connection.CreateCommand())
- {
- cmd.Transaction = transaction;
- cmd.CommandText = "pragma shrink_memory";
- cmd.ExecuteNonQuery();
- }
-
- transaction.Commit();
- }
- catch (OperationCanceledException)
- {
- if (transaction != null)
- {
- transaction.Rollback();
- }
-
- throw;
- }
- catch (Exception e)
- {
- _logger.ErrorException("Failed to save items:", e);
-
- if (transaction != null)
- {
- transaction.Rollback();
- }
-
- throw;
- }
- finally
- {
- if (transaction != null)
- {
- transaction.Dispose();
- }
-
- _writeLock.Release();
- }
- }
-
- public void Dispose()
- {
- if (_shrinkMemoryTimer != null)
- {
- _shrinkMemoryTimer.Dispose();
- _shrinkMemoryTimer = null;
- }
- }
- }
-}