Example #1
0
        public async ValueTask DisposeAsync()
        {
            IAsyncDisposable[] disposables;

            lock (_lock)
            {
                if (_isClosed)
                {
                    return;
                }

                _isClosed   = true;
                disposables = _disposabels.ToArray();
            }


            foreach (var disposable in disposables)
            {
                await disposable.DisposeAsync();
            }

            await _connectionPool.DisposeAsync();
        }