예제 #1
0
        private void Dispose(bool disposing)
        {
            if (disposing)
            {
                // Make sure the initialization task has finished
                EnsureInitializeCompleted();
                Contract.Assert(m_initializationTask == null, "EnsureInitializeCompleted sets m_initializationTask to null");

                CompleteWritingFile();

                if (m_logFileCombinerStatistics)
                {
                    switch (m_usage)
                    {
                    case FileCombinerUsage.SpecFileCache:
                        Tracing.Logger.Log.SpecCache(m_loggingContext, m_stats);
                        break;

                    default:
                        Contract.Assume(m_usage == FileCombinerUsage.IncrementalScriptFrontEnd, "Unexpected FileCombinerUsage");
                        Tracing.Logger.Log.IncrementalFrontendCache(m_loggingContext, m_stats);
                        break;
                    }
                }

                m_reader?.Dispose();
                m_writer?.Dispose();
                m_file?.Dispose();

                m_content = null;
            }
        }
예제 #2
0
 /// <nodoc />
 public void Dispose()
 {
     m_bxlReader.Dispose();
 }