示例#1
0
文件: EWMA.cs 项目: yitaom2/ravendb
        /// <summary>
        /// Mark the passage of time and decay the current rate accordingly.
        /// </summary>
        public void Tick()
        {
            var count       = _uncounted.GetAndSet(0);
            var instantRate = count / _interval;

            if (_initialized.Raise())
            {
                _rate.Set(instantRate);
            }
            else
            {
                _rate += _alpha * (instantRate - _rate);
            }
        }
示例#2
0
 private static VolatileDouble Add(VolatileDouble left, VolatileDouble right)
 {
     left.Set(left.Get() + right.Get());
     return(left.Get());
 }