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