1 write to _channels
System.Linq.Parallel (1)
System\Linq\Parallel\Merging\AsynchronousChannelMergeEnumerator.cs (1)
53
_channels
= channels;
21 references to _channels
System.Linq.Parallel (21)
System\Linq\Parallel\Merging\AsynchronousChannelMergeEnumerator.cs (21)
55
_done = new bool[
_channels
.Length]; // Initialized to { false }, i.e. no channels done.
71
if (_channelIndex == -1 || _channelIndex ==
_channels
.Length)
98
if (index ==
_channels
.Length)
104
if (!_done[index] &&
_channels
[index].TryDequeue(ref _currentElement))
106
_channelIndex = (index + 1) %
_channels
.Length;
127
while ((currChannelIndex = _channelIndex) <
_channels
.Length)
129
AsynchronousChannel<T> current =
_channels
[currChannelIndex];
137
_channelIndex = (currChannelIndex + 1) %
_channels
.Length;
165
Debug.Assert(
_channels
[currChannelIndex].IsDone, "thought this channel was done");
166
Debug.Assert(
_channels
[currChannelIndex].IsChunkBufferEmpty, "thought this channel was empty");
170
if (++doneChannels ==
_channels
.Length)
173
_channelIndex = currChannelIndex =
_channels
.Length;
179
_channelIndex = currChannelIndex = (currChannelIndex + 1) %
_channels
.Length;
194
for (int i = 0; i <
_channels
.Length; i++)
197
if (!_done[i] &&
_channels
[i].TryDequeue(ref _currentElement, ref channelIsDone))
210
if (++doneChannels ==
_channels
.Length)
214
_channelIndex = currChannelIndex =
_channels
.Length;
221
if (currChannelIndex ==
_channels
.Length)
252
for (int i = 0; i <
_channels
.Length; i++)
260
_channels
[i].DoneWithDequeueWait();
271
Debug.Assert(currChannelIndex ==
_channels
.Length);