protected virtual void Dispose()

in src/TestFramework/Core/Logging/Logger.cs [330:388]


        protected virtual void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (disposing)
                {
                    if (logRunner.IsAlive)
                    {
                        // send end log message to end the thread.
                        AvailableLogMessage endMessage = new AvailableLogMessage(
                            new List<LogSink>(), new Dictionary<string, object>(), true);
                        lock (logMessageQueue)
                        {
                            logMessageQueue.Enqueue(endMessage);
                            hRead.Set();
                        }

                        // wait for thread end
                        logRunner.Join();
                        ProcessErrors();
                    }

                    // close event handles
                    hRead.Close();
                    hWrite.Close();

                    // clear queue
                    lock (logMessageQueue)
                    {
                        logMessageQueue.Clear();
                        logMessageQueue = null;
                    }

                    // clear sinks
                    if (null != logProfile)
                    {
                        foreach (LogSink sink in logProfile.AllSinks)
                        {
                            sink.Close();
                        }
                        logProfile.ProfilesMap.Clear();
                    }

                    // clear other resources
                    activeKinds.Clear();
                    activeKinds = null;

                    registeredProviders.Clear();
                    registeredProviders = null;

                    outputStatistics.Clear();
                    outputStatistics = null;

                    errors.Clear();
                    errors = null;
                }
                this.disposed = true;
            }
        }