private bool TryClaimFreeSlot(out LockSlot <T> slot) { if (_closedSlots.TryTake(out slot)) { slot.Open(_version.AdvanceNewToken()); return(true); } return(false); }
public void FillEnumerable() { var queue = new FixedSizeQueue<int>(Enumerable.Range(0, 64)); Assert.IsFalse(queue.Add(999)); foreach (var item in Enumerable.Range(0, queue.Capacity)) { int found; queue.TryTake(out found); Assert.AreEqual(found, item); } }
public void FillEnumerable() { var queue = new FixedSizeQueue <int>(Enumerable.Range(0, 64)); Assert.IsFalse(queue.Add(999)); foreach (var item in Enumerable.Range(0, queue.Capacity)) { int found; queue.TryTake(out found); Assert.AreEqual(found, item); } }
public void Fill() { var queue = new FixedSizeQueue <int>(64); foreach (var item in Enumerable.Range(0, queue.Capacity)) { queue.TryAdd(item); } foreach (var item in Enumerable.Range(0, queue.Capacity)) { int found; queue.TryTake(out found); Assert.AreEqual(found, item); } }