public void Add(WheelTimerEvent te, int period) { int addToSlotIndex = currSlotIndex + period; if (addToSlotIndex >= slotsLen) { addToSlotIndex -= slotsLen; } var addToSlot = slots[addToSlotIndex]; if (addToSlot.Set(te)) { te.OwnerSlotIndex = addToSlotIndex; } }
public void Active(WheelTimerEvent te, int period) { int addToSlotIndex = currSlotIndex + period; if (addToSlotIndex >= slotsLen) { addToSlotIndex -= slotsLen; } if (te.OwnerSlotIndex == addToSlotIndex) { return; } if (Remove(te)) { Add(te, period); } }
public bool Remove(WheelTimerEvent te) { var ownerSlot = slots[te.OwnerSlotIndex]; return(ownerSlot.Remove(te)); }
public bool Remove(WheelTimerEvent timerEvent) { WheelTimerEvent dummy = null; return(events.TryRemove(timerEvent, out dummy)); }
public bool Set(WheelTimerEvent timerEvent) { return(events.TryAdd(timerEvent, timerEvent)); }