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()); } }
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); } } } }