protected virtual void Dispose()

in Amazon.KinesisTap.Hosting/Session.cs [650:699]


        protected virtual void Dispose(bool disposing)
        {
            if (Disposed)
            {
                return;
            }

            if (disposing)
            {
                foreach (var subscription in _subscriptions)
                {
                    try
                    {
                        subscription?.Dispose();
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex, $"Error stopping subscription");
                    }
                }

                foreach (var source in _sources.Values)
                {
                    if (source != _metrics && source is IDisposable disposableSource)
                    {
                        disposableSource.Dispose();
                    }
                }

                foreach (var sink in _sinks.Values)
                {
                    if (sink is IDisposable disposableSink)
                    {
                        disposableSink.Dispose();
                    }
                }

                foreach (var plugin in _plugins)
                {
                    if (plugin is IDisposable disposablePlugin)
                    {
                        disposablePlugin.Dispose();
                    }
                }

                _stopTokenSource?.Dispose();
            }

            Disposed = true;
        }