public JobHandle Submit(Group group, ThreadStart job, long initialDelayNanos, long reschedulingDelayNanos) { long now = _clock.nanos(); long nextDeadlineNanos = now + initialDelayNanos; ScheduledJobHandle task = new ScheduledJobHandle(this, group, job, nextDeadlineNanos, reschedulingDelayNanos); EnqueueTask(task); return(task); }
public override void Run() { lock (this) { long nowNanos = _clock.nanos(); ISet <KernelTransactionHandle> activeTransactions = _kernelTransactions.activeTransactions(); CheckExpiredTransactions(activeTransactions, nowNanos); } }
// 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 }