示例#1
0
        public override void Dispose()
        {
            var aggregator = new ExceptionAggregator("Could not dispose Storage test.");

            aggregator.Execute(() =>
            {
                if (_storageEnvironment.IsValueCreated)
                {
                    _storageEnvironment.Value.Dispose();
                }

                _storageEnvironment = null;
            });

            aggregator.Execute(() =>
            {
                Options?.Dispose();
                Options = null;
            });

            aggregator.Execute(() =>
            {
                IOExtensions.DeleteDirectory(DataDir);
            });

            aggregator.ThrowIfNeeded();

            GC.Collect(GC.MaxGeneration);
            GC.WaitForPendingFinalizers();
        }
示例#2
0
        public virtual void Dispose()
        {
            _storageEnvironment?.Dispose();
            _options.Dispose();
            _allocator.Dispose();
            DeleteDirectory(DataDir);

            _storageEnvironment = null;
            _options            = null;
            _allocator          = null;
            GC.Collect(GC.MaxGeneration);
            GC.WaitForPendingFinalizers();
        }
示例#3
0
        public virtual void Dispose()
        {
            if (_storageEnvironment != null)
            {
                _storageEnvironment.Dispose();
            }
            _options.Dispose();
            DeleteDirectory("test.data");

            _storageEnvironment = null;
            _options            = null;
            GC.Collect(GC.MaxGeneration);
            GC.WaitForPendingFinalizers();
        }
示例#4
0
        public static StorageEnvironment OpenEnvironment(StorageEnvironmentOptions options)
        {
            try
            {
                if (options is StorageEnvironmentOptions.DirectoryStorageEnvironmentOptions directoryOptions)
                {
                    return(OpenEnvironmentInternal(directoryOptions));
                }

                return(new StorageEnvironment(options));
            }
            catch (Exception)
            {
                options.Dispose();

                throw;
            }
        }
示例#5
0
        public static StorageEnvironment OpenEnvironment(StorageEnvironmentOptions options, StorageEnvironmentWithType.StorageEnvironmentType type)
        {
            try
            {
                if (options is StorageEnvironmentOptions.DirectoryStorageEnvironmentOptions directoryOptions)
                {
                    return(OpenEnvironmentWithPossibleLayoutUpdate(directoryOptions, type));
                }

                return(new StorageEnvironment(options));
            }
            catch (Exception)
            {
                options.Dispose();

                throw;
            }
        }