Пример #1
0
        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);
        }
Пример #2
0
        // 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
        }
Пример #3
0
 internal virtual void DoneWaitingOnLock(WaitingOnLockEvent waiting)
 {
     if (_status != waiting)
     {
         return;                         // already closed
     }
     _waitTime.addAndGet(this, waiting.WaitTimeNanos(_clock.nanos()));
     _status = waiting.PreviousStatus();
 }
Пример #4
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());
     }
 }
Пример #5
0
 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;
 }