示例#1
0
 public virtual void WaitsForQuery(ExecutingQuery child)
 {
     if (child == null)
     {
         _waitTime.addAndGet(this, _status.waitTimeNanos(_clock.nanos()));
         this._status = SimpleState.Running();
     }
     else
     {
         this._status = new WaitingOnQuery(child, _clock.nanos());
     }
 }
示例#2
0
        internal void Update(long delta)
        {
            long progress = _progressUpdater.addAndGet(this, delta);
            int  current  = ( int )((progress * _indicator.reportResolution()) / _totalCount);

            for (int last = this._last; current > last; last = this._last)
            {
                if (_lastUpdater.compareAndSet(this, last, current))
                {
                    lock (this)
                    {
                        _indicator.progress(last, current);
                    }
                }
            }
        }