Пример #1
0
 /// <summary>
 /// 链表
 /// </summary>
 /// <param name="maxCount">链表缓存池默认缓存数量</param>
 internal YieldPool(int maxCount)
 {
     head          = null;
     popLock       = default(AutoCSer.Threading.SpinLock);
     count         = 0;
     this.maxCount = maxCount;
 }
Пример #2
0
 private bool freeNotEnd(ref AutoCSer.Threading.SpinLock linkLock)
 {
     if (DoubleLinkNext != null)
     {
         DoubleLinkNext.DoubleLinkPrevious = DoubleLinkPrevious;
         if (DoubleLinkPrevious != null)
         {
             DoubleLinkPrevious.DoubleLinkNext = DoubleLinkNext;
             DoubleLinkPrevious = null;
         }
         DoubleLinkNext = null;
         linkLock.Exit();
         return(true);
     }
     linkLock.Exit(); //已经被释放的不做处理
     return(false);
 }
Пример #3
0
 /// <summary>
 /// 验证时间戳
 /// </summary>
 /// <param name="ticks"></param>
 public TimeVerifyTick(long ticks)
 {
     lastVerifyTickLock = default(AutoCSer.Threading.SpinLock);
     lastVerifyTicks    = ticks;
 }
Пример #4
0
 /// <summary>
 /// 节点队列链表
 /// </summary>
 /// <param name="head">节点队列头部</param>
 internal YieldQueue(T head)
 {
     this.Head = end = head;
     queueLock = default(AutoCSer.Threading.SpinLock);
 }