コード例 #1
0
ファイル: SlimConcurrentQueue.cs プロジェクト: yuuhhe/Ariadne
            internal AtDequeuEnumerable(SlimConcurrentQueue <T> queue)
            {
                SinglyLinkedNode <T> head;
                SinglyLinkedNode <T> tail;

                while (Interlocked.CompareExchange(ref queue._head, tail = queue._tail, head = queue._head) != head)
                {
                }
                _start = head;
                _end   = tail;
            }
コード例 #2
0
ファイル: SlimConcurrentQueue.cs プロジェクト: yuuhhe/Ariadne
 internal SnapshotEnumerable(SlimConcurrentQueue <T> queue)
 {
     _head = queue._head;
     _tail = queue._tail;
 }
コード例 #3
0
ファイル: SlimConcurrentQueue.cs プロジェクト: yuuhhe/Ariadne
 internal Enumerator(SlimConcurrentQueue <T> queue)
 {
     _node = (_queue = queue)._head;
 }
コード例 #4
0
ファイル: SlimConcurrentQueue.cs プロジェクト: yuuhhe/Ariadne
 internal DequeuEnumerator(SlimConcurrentQueue <T> queue)
 {
     _queue = queue;
 }
コード例 #5
0
 /// <summary>Creates a new <see cref="TrackedConcurrentQueue&lt;T>"/></summary>
 public TrackedConcurrentQueue()
 {
     _backing = new SlimConcurrentQueue <T>();
 }
コード例 #6
0
 /// <summary>
 /// Initialises a new instance of the <see cref="Ariadne.Collections.GroupedProducerConsumer{T}"/> class.
 /// </summary>
 public GroupedProducerConsumer()
 {
     _backing = new SlimConcurrentQueue <T>();
 }
コード例 #7
0
 public Enumerator(SlimConcurrentQueue <T> queue)
 {
     _queue = queue;
     _moved = false;
 }