public void ReceiveExecutor(Executor executor) { this.Executor = executor; // Guard just in case the Executor calls us again. This can // happen if there are multiple entry points. if (this.ProgramLoopInfo == null) { this.ProgramLoopInfo = new ProgramLoopInfo(executor.TheProgram); // Register the callbacks we need executor.BasicBlockChanged += Executor_BasicBlockChanged; executor.ForkOccurred += Executor_ForkOccurred; executor.ImplementationEntered += Executor_ImplementationEntered; } // Give the underlying executor access to the scheduler UnderlyingScheduler.ReceiveExecutor(executor); }
public void ReceiveExecutor(Executor executor) { this.TheExecutor = executor; Debug.Assert(TheExecutor != null, "TheExecutor cannot be null"); UnderlyingStateScheduler.ReceiveExecutor(executor); }