예제 #1
0
 /// <summary> Remove the given sequence number from the list of seqnos eligible
 /// for retransmission. If there are no more seqno intervals in the
 /// respective entry, cancel the entry from the retransmission
 /// scheduler and remove it from the pending entries
 /// </summary>
 public virtual void  remove(long seqno)
 {
     lock (msgs.SyncRoot)
     {
         for (int index = 0; index < msgs.Count; index++)
         {
             RetransmitterEntry e = (RetransmitterEntry)msgs[index];
             lock (e)
             {
                 if (seqno < e.low || seqno > e.high)
                 {
                     continue;
                 }
                 e.remove(seqno);
                 if (e.low > e.high)
                 {
                     e.cancel();
                     msgs.RemoveAt(index);
                 }
             }
             break;
         }
     }
 }