56 references to m_state
mscorlib (56)
system\threading\Tasks\ProducerConsumerQueues.cs (56)
162int last = segment.m_state.m_last; // local copy to avoid multiple volatile reads 166if (tail2 != segment.m_state.m_firstCopy) 169segment.m_state.m_last = tail2; 182if (segment.m_state.m_firstCopy != segment.m_state.m_first) 184segment.m_state.m_firstCopy = segment.m_state.m_first; 195newSegment.m_state.m_last = 1; 196newSegment.m_state.m_lastCopy = 1; 214int first = segment.m_state.m_first; // local copy to avoid multiple volatile reads 217if (first != segment.m_state.m_lastCopy) 221segment.m_state.m_first = (first + 1) & (array.Length - 1); 238if (segment.m_state.m_last != segment.m_state.m_lastCopy) 240segment.m_state.m_lastCopy = segment.m_state.m_last; 244if (segment.m_next != null && segment.m_state.m_first == segment.m_state.m_last) 251var first = segment.m_state.m_first; // local copy to avoid extraneous volatile reads 253if (first == segment.m_state.m_last) 261segment.m_state.m_first = (first + 1) & (segment.m_array.Length - 1); 262segment.m_state.m_lastCopy = segment.m_state.m_last; // Refresh m_lastCopy to ensure that m_first has not passed m_lastCopy 274int first = segment.m_state.m_first; // local copy to avoid multiple volatile reads 277if (first != segment.m_state.m_lastCopy) 296if (segment.m_state.m_last != segment.m_state.m_lastCopy) 298segment.m_state.m_lastCopy = segment.m_state.m_last; 302if (segment.m_next != null && segment.m_state.m_first == segment.m_state.m_last) 309var first = segment.m_state.m_first; // local copy to avoid extraneous volatile reads 311if (first == segment.m_state.m_last) 329int first = segment.m_state.m_first; // local copy to avoid multiple volatile reads 332if (first != segment.m_state.m_lastCopy) 338segment.m_state.m_first = (first + 1) & (array.Length - 1); 362if (segment.m_state.m_last != segment.m_state.m_lastCopy) 364segment.m_state.m_lastCopy = segment.m_state.m_last; 368if (segment.m_next != null && segment.m_state.m_first == segment.m_state.m_last) 375var first = segment.m_state.m_first; // local copy to avoid extraneous volatile reads 377if (first == segment.m_state.m_last) 387segment.m_state.m_first = (first + 1) & (segment.m_array.Length - 1); 388segment.m_state.m_lastCopy = segment.m_state.m_last; // Refresh m_lastCopy to ensure that m_first has not passed m_lastCopy 412if (head.m_state.m_first != head.m_state.m_lastCopy) return false; // m_first is volatile, so the read of m_lastCopy cannot get reordered 413if (head.m_state.m_first != head.m_state.m_last) return false; 424for (int pt = segment.m_state.m_first; 425pt != segment.m_state.m_last; 449first = segment.m_state.m_first; 450last = segment.m_state.m_last; 451if (first == segment.m_state.m_first) break;