Skip to content

Commit 4109045

Browse files
author
Harry
committed
fix breaking change in CheckpointStorageProvider ctor
1 parent a13bb85 commit 4109045

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/bctklib/persistence/CheckpointStorageProvider.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,30 @@ public partial class CheckpointStorageProvider : IDisposableStorageProvider
1212
readonly IStorageProvider? storageProvider;
1313
readonly IDisposable? checkpointCleanup;
1414
readonly Lazy<IStore> defaultStore;
15+
readonly bool disposeStorageProvider;
16+
1517
ImmutableDictionary<string, IStore> stores = ImmutableDictionary<string, IStore>.Empty;
1618

17-
public CheckpointStorageProvider(RocksDbStorageProvider? rocksDbStorageProvider, IDisposable? checkpointCleanup = null)
18-
: this((IStorageProvider?)rocksDbStorageProvider, checkpointCleanup)
19+
public CheckpointStorageProvider(RocksDbStorageProvider? rocksDbStorageProvider, bool disposeStorageProvider = true, IDisposable? checkpointCleanup = null)
20+
: this((IStorageProvider?)rocksDbStorageProvider, disposeStorageProvider, checkpointCleanup)
1921
{
2022
}
2123

22-
public CheckpointStorageProvider(IStorageProvider? storageProvider, IDisposable? checkpointCleanup = null)
24+
public CheckpointStorageProvider(IStorageProvider? storageProvider, bool disposeStorageProvider = true, IDisposable? checkpointCleanup = null)
2325
{
2426
this.storageProvider = storageProvider;
2527
this.checkpointCleanup = checkpointCleanup;
28+
this.disposeStorageProvider = disposeStorageProvider;
2629

2730
defaultStore = new Lazy<IStore>(() => new MemoryTrackingStore(GetStorageProviderStore(null)));
2831
}
2932

3033
public void Dispose()
3134
{
32-
(storageProvider as IDisposable)?.Dispose();
35+
if (disposeStorageProvider)
36+
{
37+
(storageProvider as IDisposable)?.Dispose();
38+
}
3339
checkpointCleanup?.Dispose();
3440
}
3541

0 commit comments

Comments
 (0)