private LockWaitEvent WaitForLock(bool exclusive, ResourceType resourceType, long[] resourceIds) { WaitingOnLockEvent @event = new WaitingOnLockEvent(exclusive ? Org.Neo4j.Kernel.impl.locking.ActiveLock_Fields.EXCLUSIVE_MODE : Org.Neo4j.Kernel.impl.locking.ActiveLock_Fields.SHARED_MODE, resourceType, resourceIds, this, _clock.nanos(), _status); _status = @event; return(@event); }
// update state public virtual void CompilationCompleted(CompilerInfo compilerInfo, System.Func <ExecutionPlanDescription> planDescriptionSupplier) { this._compilerInfo = compilerInfo; this._compilationCompletedNanos = _clock.nanos(); this._planDescriptionSupplier = planDescriptionSupplier; this._status = SimpleState.Running(); // write barrier - must be last }
internal virtual void DoneWaitingOnLock(WaitingOnLockEvent waiting) { if (_status != waiting) { return; // already closed } _waitTime.addAndGet(this, waiting.WaitTimeNanos(_clock.nanos())); _status = waiting.PreviousStatus(); }
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 WaitingOnLockEvent(string mode, ResourceType resourceType, long[] resourceIds, ExecutingQuery executingQuery, long currentTimeNanos, ExecutingQueryStatus previous) : base(mode, resourceType, resourceIds, currentTimeNanos) { this._executingQuery = executingQuery; this._previous = previous; }