示例#1
0
 private void StartBLOB(uint lenExpected)
 {
     m_Blob.SetSize(0);
     if (lenExpected > m_Blob.MaxBufferSize)
     {
         m_Blob.Realloc(lenExpected);
     }
     m_Blob.Push(UQueue.IntenalBuffer, UQueue.HeadPosition, UQueue.GetSize());
     UQueue.SetSize(0);
 }
示例#2
0
        public void TestEmpty()
        {
            var q = new UQueue();

            Assert.Throws(
                typeof(InvalidOperationException),
                delegate { q.Peek(); }
                );

            Assert.Throws(
                typeof(InvalidOperationException),
                delegate { q.Dequeue(); }
                );
        }
示例#3
0
        public void TestEnqueueDequeue(params object[] args)
        {
            var q = new UQueue();

            for (int i = 0; i < args.Length; ++i)
            {
                q.Enqueue(args[i]);
                Assert.AreEqual(q.Count, i + 1);
            }

            for (int i = 0; i < args.Length; ++i)
            {
                Assert.AreEqual(args[i], q.Dequeue());
                Assert.AreEqual(q.Count, args.Length - i - 1);
            }
        }
示例#4
0
        public static void DestroyUQueuePool()
        {
#if TASKS_ENABLED
            CUQueue UQueue;
            if (m_sQueue.TryPop(out UQueue))
            {
                UQueue.Empty();
            }
#else
            lock (m_cs)
            {
                while (m_sQueue.Count > 0)
                {
                    m_sQueue.Pop().Empty();
                }
            }
#endif
        }