public Reservation Set(long time, OnTime onTime, OnCancel onCancel = null, Reservation.IHandle handler = null, IAlarmPayload payload = null) { Dev.Assert(onTime != null, "Cannot set timer with null onTime delegate"); if (handler?.Reservation != null) { return(null); } Reservation reservation = _reservationPool.Alloc(); reservation.Time = LogicTime.TIME() + time; reservation.OnTime = onTime; reservation.OnCancel = onCancel; reservation.Handler = handler; reservation.Payload = payload; if (handler != null) { Dev.Assert(handler.Reservation == null, "Alarm reservation already used"); reservation.Handler.Reservation = reservation; } _reservations.Add(reservation.Time, reservation); return(reservation); }
public Builder Alloc() { return(_builderPool.Alloc()); }
public NodeType Alloc() { return(_nodePool.Alloc()); }