internal ConcurrentExclusiveTaskScheduler(ConcurrentExclusiveSchedulerPair pair, int maxConcurrencyLevel, ConcurrentExclusiveSchedulerPair.ProcessingMode processingMode)
 {
     this.m_pair = pair;
     this.m_maxConcurrencyLevel = maxConcurrencyLevel;
     this.m_processingMode      = processingMode;
     this.m_tasks = processingMode == ConcurrentExclusiveSchedulerPair.ProcessingMode.ProcessingExclusiveTask ? (IProducerConsumerQueue <Task>) new SingleProducerSingleConsumerQueue <Task>() : (IProducerConsumerQueue <Task>) new MultiProducerMultiConsumerQueue <Task>();
 }
            // Token: 0x06006EE3 RID: 28387 RVA: 0x0017DBAC File Offset: 0x0017BDAC
            internal ConcurrentExclusiveTaskScheduler(ConcurrentExclusiveSchedulerPair pair, int maxConcurrencyLevel, ConcurrentExclusiveSchedulerPair.ProcessingMode processingMode)
            {
                this.m_pair = pair;
                this.m_maxConcurrencyLevel = maxConcurrencyLevel;
                this.m_processingMode      = processingMode;
                IProducerConsumerQueue <Task> tasks;

                if (processingMode != ConcurrentExclusiveSchedulerPair.ProcessingMode.ProcessingExclusiveTask)
                {
                    IProducerConsumerQueue <Task> producerConsumerQueue = new MultiProducerMultiConsumerQueue <Task>();
                    tasks = producerConsumerQueue;
                }
                else
                {
                    IProducerConsumerQueue <Task> producerConsumerQueue = new SingleProducerSingleConsumerQueue <Task>();
                    tasks = producerConsumerQueue;
                }
                this.m_tasks = tasks;
            }