/// <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; } } }