From 995088055d39522d30fdb23d6611112ea3050816 Mon Sep 17 00:00:00 2001 From: Gregorius Soedharmo Date: Tue, 24 Jun 2025 00:13:21 +0700 Subject: [PATCH] Add missing using keyword --- .../Snapshot/ByteArraySnapshotDao.cs | 28 +++++++++++-------- .../Snapshot/SqlSnapshotStore.cs | 6 ++++ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/Akka.Persistence.Sql/Snapshot/ByteArraySnapshotDao.cs b/src/Akka.Persistence.Sql/Snapshot/ByteArraySnapshotDao.cs index 57e262c9..84b48585 100644 --- a/src/Akka.Persistence.Sql/Snapshot/ByteArraySnapshotDao.cs +++ b/src/Akka.Persistence.Sql/Snapshot/ByteArraySnapshotDao.cs @@ -19,7 +19,7 @@ namespace Akka.Persistence.Sql.Snapshot { - public class ByteArraySnapshotDao : ISnapshotDao + public class ByteArraySnapshotDao : ISnapshotDao, IDisposable { private readonly AkkaPersistenceDataConnectionFactory _connectionFactory; private readonly ByteArrayDateTimeSnapshotSerializer _dateTimeSerializer; @@ -54,7 +54,7 @@ public async Task DeleteAllSnapshotsAsync( string persistenceId, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); await _connectionFactory.ExecuteWithTransactionAsync( _writeIsolationLevel, cts.Token, @@ -82,7 +82,7 @@ public async Task DeleteUpToMaxSequenceNrAsync( long maxSequenceNr, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); await _connectionFactory.ExecuteWithTransactionAsync( _writeIsolationLevel, cts.Token, @@ -116,7 +116,7 @@ public async Task DeleteUpToMaxTimestampAsync( DateTime maxTimestamp, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); await _connectionFactory.ExecuteWithTransactionAsync( _writeIsolationLevel, cts.Token, @@ -151,7 +151,7 @@ public async Task DeleteUpToMaxSequenceNrAndMaxTimestampAsync( DateTime maxTimestamp, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); await _connectionFactory.ExecuteWithTransactionAsync( _writeIsolationLevel, cts.Token, @@ -186,7 +186,7 @@ public async Task> LatestSnapshotAsync( string persistenceId, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); return await _connectionFactory.ExecuteWithTransactionAsync( _readIsolationLevel, cts.Token, @@ -224,7 +224,7 @@ public async Task> SnapshotForMaxTimestampAsync( DateTime timestamp, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); return await _connectionFactory.ExecuteWithTransactionAsync( _readIsolationLevel, cts.Token, @@ -268,7 +268,7 @@ public async Task> SnapshotForMaxSequenceNrAsync( long sequenceNr, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); return await _connectionFactory.ExecuteWithTransactionAsync( _readIsolationLevel, cts.Token, @@ -313,7 +313,7 @@ public async Task> SnapshotForMaxSequenceNrAndMaxTimest DateTime timestamp, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); return await _connectionFactory.ExecuteWithTransactionAsync( _readIsolationLevel, cts.Token, @@ -360,7 +360,7 @@ public async Task DeleteAsync( DateTime timestamp, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); await _connectionFactory.ExecuteWithTransactionAsync( _writeIsolationLevel, cts.Token, @@ -403,7 +403,7 @@ public async Task SaveAsync( object snapshot, CancellationToken cancellationToken) { - var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _shutdownCts.Token); await _connectionFactory.ExecuteWithTransactionAsync( _writeIsolationLevel, cts.Token, @@ -443,5 +443,11 @@ public async Task InitializeTables() await connection.CreateTableAsync(TableOptions.CreateIfNotExists, footer); } } + + public void Dispose() + { + _shutdownCts.Cancel(); + _shutdownCts.Dispose(); + } } } diff --git a/src/Akka.Persistence.Sql/Snapshot/SqlSnapshotStore.cs b/src/Akka.Persistence.Sql/Snapshot/SqlSnapshotStore.cs index a0f80c24..0e0acf09 100644 --- a/src/Akka.Persistence.Sql/Snapshot/SqlSnapshotStore.cs +++ b/src/Akka.Persistence.Sql/Snapshot/SqlSnapshotStore.cs @@ -64,6 +64,12 @@ protected override void PreStart() BecomeStacked(WaitingForInitialization); } + protected override void PostStop() + { + _dao.Dispose(); + base.PostStop(); + } + private bool WaitingForInitialization(object message) { switch (message)