@@ -12,24 +12,30 @@ public partial class CheckpointStorageProvider : IDisposableStorageProvider
12
12
readonly IStorageProvider ? storageProvider ;
13
13
readonly IDisposable ? checkpointCleanup ;
14
14
readonly Lazy < IStore > defaultStore ;
15
+ readonly bool disposeStorageProvider ;
16
+
15
17
ImmutableDictionary < string , IStore > stores = ImmutableDictionary < string , IStore > . Empty ;
16
18
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 )
19
21
{
20
22
}
21
23
22
- public CheckpointStorageProvider ( IStorageProvider ? storageProvider , IDisposable ? checkpointCleanup = null )
24
+ public CheckpointStorageProvider ( IStorageProvider ? storageProvider , bool disposeStorageProvider = true , IDisposable ? checkpointCleanup = null )
23
25
{
24
26
this . storageProvider = storageProvider ;
25
27
this . checkpointCleanup = checkpointCleanup ;
28
+ this . disposeStorageProvider = disposeStorageProvider ;
26
29
27
30
defaultStore = new Lazy < IStore > ( ( ) => new MemoryTrackingStore ( GetStorageProviderStore ( null ) ) ) ;
28
31
}
29
32
30
33
public void Dispose ( )
31
34
{
32
- ( storageProvider as IDisposable ) ? . Dispose ( ) ;
35
+ if ( disposeStorageProvider )
36
+ {
37
+ ( storageProvider as IDisposable ) ? . Dispose ( ) ;
38
+ }
33
39
checkpointCleanup ? . Dispose ( ) ;
34
40
}
35
41
0 commit comments