/// <inheritdoc /> protected override async Task <BoolResult> ShutdownCoreAsync(OperationContext context) { var results = new List <Tuple <string, BoolResult> >(); var innerResult = await InnerContentStore.ShutdownAsync(context); results.Add(Tuple.Create(nameof(InnerContentStore), innerResult)); _evictionNagleQueue?.Dispose(); _touchNagleQueue?.Dispose(); var locationStoreResult = await _contentLocationStore.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_contentLocationStore), locationStoreResult)); var factoryResult = await _contentLocationStoreFactory.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_contentLocationStoreFactory), factoryResult)); if (_distributedCopier != null) { var copierResult = await _distributedCopier.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_distributedCopier), copierResult)); } return(ShutdownErrorCompiler(results)); }
protected virtual void Dispose(bool disposing) { if (!_disposedValue) { if (disposing) { _queue.Dispose(); } _disposedValue = true; } }
protected override Task <BoolResult> ShutdownCoreAsync(OperationContext context) { // This stops uploading more logs, wait for all in-memory logs to flush to disk, and then wait for ongoing // transfers to finish. Note that contrary to its name, the method is not actually asynchronous. if (!_configuration.DrainUploadsOnShutdown) { _uploadQueue.Suspend(); } _writeQueue.Dispose(); _uploadQueue.Dispose(); return(BoolResult.SuccessTask); }
/// <inheritdoc /> protected override async Task <BoolResult> ShutdownCoreAsync(OperationContext context) { var results = new List <Tuple <string, BoolResult> >(); if (_proactiveCopySession?.IsValueCreated == true) { var sessionResult = await _proactiveCopySession.Value; if (sessionResult.Succeeded) { var proactiveCopySessionShutdownResult = await sessionResult.Value.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_proactiveCopySession), proactiveCopySessionShutdownResult)); } } var innerResult = await InnerContentStore.ShutdownAsync(context); results.Add(Tuple.Create(nameof(InnerContentStore), innerResult)); _evictionNagleQueue?.Dispose(); _touchNagleQueue?.Dispose(); if (_contentLocationStore != null) { var locationStoreResult = await _contentLocationStore.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_contentLocationStore), locationStoreResult)); } var factoryResult = await _contentLocationStoreFactory.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_contentLocationStoreFactory), factoryResult)); if (_distributedCopier != null) { var copierResult = await _distributedCopier.ShutdownAsync(context); results.Add(Tuple.Create(nameof(_distributedCopier), copierResult)); } return(ShutdownErrorCompiler(results)); }
/// <nodoc /> protected override Task <BoolResult> ShutdownCoreAsync(OperationContext context) { TouchNagleQueue?.Dispose(); return(BoolResult.SuccessTask); }
/// <inheritdoc/> public void Dispose() { m_dropClient.Dispose(); m_cancellationSource.Dispose(); m_nagleQueue.Dispose(); }