From 4109045b32df6fd6c286ad5158a5b5849b06d1b7 Mon Sep 17 00:00:00 2001 From: Harry Date: Tue, 12 Oct 2021 13:31:27 -0700 Subject: [PATCH] fix breaking change in CheckpointStorageProvider ctor --- .../persistence/CheckpointStorageProvider.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/bctklib/persistence/CheckpointStorageProvider.cs b/src/bctklib/persistence/CheckpointStorageProvider.cs index 82ca255..dc5ffdf 100644 --- a/src/bctklib/persistence/CheckpointStorageProvider.cs +++ b/src/bctklib/persistence/CheckpointStorageProvider.cs @@ -12,24 +12,30 @@ public partial class CheckpointStorageProvider : IDisposableStorageProvider readonly IStorageProvider? storageProvider; readonly IDisposable? checkpointCleanup; readonly Lazy defaultStore; + readonly bool disposeStorageProvider; + ImmutableDictionary stores = ImmutableDictionary.Empty; - public CheckpointStorageProvider(RocksDbStorageProvider? rocksDbStorageProvider, IDisposable? checkpointCleanup = null) - : this((IStorageProvider?)rocksDbStorageProvider, checkpointCleanup) + public CheckpointStorageProvider(RocksDbStorageProvider? rocksDbStorageProvider, bool disposeStorageProvider = true, IDisposable? checkpointCleanup = null) + : this((IStorageProvider?)rocksDbStorageProvider, disposeStorageProvider, checkpointCleanup) { } - public CheckpointStorageProvider(IStorageProvider? storageProvider, IDisposable? checkpointCleanup = null) + public CheckpointStorageProvider(IStorageProvider? storageProvider, bool disposeStorageProvider = true, IDisposable? checkpointCleanup = null) { this.storageProvider = storageProvider; this.checkpointCleanup = checkpointCleanup; + this.disposeStorageProvider = disposeStorageProvider; defaultStore = new Lazy(() => new MemoryTrackingStore(GetStorageProviderStore(null))); } public void Dispose() { - (storageProvider as IDisposable)?.Dispose(); + if (disposeStorageProvider) + { + (storageProvider as IDisposable)?.Dispose(); + } checkpointCleanup?.Dispose(); }