1 write to m_channels
System.Core (1)
System\Linq\Parallel\Merging\AsynchronousChannelMergeEnumerator.cs (1)
56m_channels = channels;
21 references to m_channels
System.Core (21)
System\Linq\Parallel\Merging\AsynchronousChannelMergeEnumerator.cs (21)
58m_done = new bool[m_channels.Length]; // Initialized to { false }, i.e. no channels done. 74if (m_channelIndex == -1 || m_channelIndex == m_channels.Length) 101if (index == m_channels.Length) 107if (!m_done[index] && m_channels[index].TryDequeue(ref m_currentElement)) 109m_channelIndex = (index + 1) % m_channels.Length; 130while ((currChannelIndex = m_channelIndex) != m_channels.Length) 132AsynchronousChannel<T> current = m_channels[currChannelIndex]; 140m_channelIndex = (currChannelIndex + 1) % m_channels.Length; 168Contract.Assert(m_channels[currChannelIndex].IsDone, "thought this channel was done"); 169Contract.Assert(m_channels[currChannelIndex].IsChunkBufferEmpty, "thought this channel was empty"); 173if (++doneChannels == m_channels.Length) 176m_channelIndex = currChannelIndex = m_channels.Length; 182m_channelIndex = currChannelIndex = (currChannelIndex + 1) % m_channels.Length; 197for (int i = 0; i < m_channels.Length; i++) 200if (!m_done[i] && m_channels[i].TryDequeue(ref m_currentElement, ref channelIsDone)) 213if (++doneChannels == m_channels.Length) 217m_channelIndex = currChannelIndex = m_channels.Length; 224if (currChannelIndex == m_channels.Length) 253for (int i = 0; i < m_channels.Length; i++) 261m_channels[i].DoneWithDequeueWait(); 272Contract.Assert(currChannelIndex == m_channels.Length);