C# Class ExternalDelayingExplorer.RunToCompletionDelayingScheduler

Inheritance: Microsoft.Zing.ZingerDelayingScheduler
Mostra file Open project: ZingModelChecker/Zing

Public Methods

Method Description
Delay ( ZingerSchedulerState zSchedState ) : void

Move the process on top of stack to the bottom of the stack. Moving the process to the bottom of the stack deviates the scheduler from following the casual order of events (RTC strategy).

Finish ( ZingerSchedulerState zSchedState, int processId ) : void

Remove the completed process from Stack so that it is never scheduled again.

MaxDelayReached ( ZingerSchedulerState zSchedState ) : bool

This function is used internally by the ZING explorer. It checks if we have applied the maximum number of delays in the current state. Applying any more delay operations will not lead to new transitions/states being explored. Maximum delay operations for a state is always (totalEnabledProcesses - 1).

Next ( ZingerSchedulerState zSchedState ) : int

Return process at the top of stack. This process is executed next and follows the deterministic schedule.

OnBlocked ( ZingerSchedulerState ZSchedulerState, int sourceSM ) : void

This function is called when a process is blocked. In the context of asynchronous message passing programs, a process is blocked when its queue is empty and the process is waiting for an event. The process that gets blocked is poped off the stack.

OnEnabled ( ZingerSchedulerState ZSchedulerState, int targetSM, int sourceSM ) : void

This function is called when an enqueue is performed on a process, hence it has a pending event to be serviced.

RunToCompletionDelayingScheduler ( ) : System
Start ( ZingerSchedulerState zSchedState, int processId ) : void

Push newly created process on top of Stack

ZingerOperation ( ZingerSchedulerState ZSchedulerState ) : void

This function is provided for extending or customizing the delayingExplorer.

Method Details

Delay() public method

Move the process on top of stack to the bottom of the stack. Moving the process to the bottom of the stack deviates the scheduler from following the casual order of events (RTC strategy).
public Delay ( ZingerSchedulerState zSchedState ) : void
zSchedState Microsoft.Zing.ZingerSchedulerState
return void

Finish() public method

Remove the completed process from Stack so that it is never scheduled again.
public Finish ( ZingerSchedulerState zSchedState, int processId ) : void
zSchedState Microsoft.Zing.ZingerSchedulerState
processId int Process id to be removed from the stack
return void

MaxDelayReached() public method

This function is used internally by the ZING explorer. It checks if we have applied the maximum number of delays in the current state. Applying any more delay operations will not lead to new transitions/states being explored. Maximum delay operations for a state is always (totalEnabledProcesses - 1).
public MaxDelayReached ( ZingerSchedulerState zSchedState ) : bool
zSchedState Microsoft.Zing.ZingerSchedulerState
return bool

Next() public method

Return process at the top of stack. This process is executed next and follows the deterministic schedule.
public Next ( ZingerSchedulerState zSchedState ) : int
zSchedState Microsoft.Zing.ZingerSchedulerState
return int

OnBlocked() public method

This function is called when a process is blocked. In the context of asynchronous message passing programs, a process is blocked when its queue is empty and the process is waiting for an event. The process that gets blocked is poped off the stack.
public OnBlocked ( ZingerSchedulerState ZSchedulerState, int sourceSM ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
sourceSM int This parameter is passed for debugging purposes
return void

OnEnabled() public method

This function is called when an enqueue is performed on a process, hence it has a pending event to be serviced.
public OnEnabled ( ZingerSchedulerState ZSchedulerState, int targetSM, int sourceSM ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
targetSM int targetSM is the target process in which the event was enqueued. /// This process is pushed on top of the stack to follow event enqueue order.
sourceSM int This parameter is passed for debugging purposes
return void

RunToCompletionDelayingScheduler() public method

public RunToCompletionDelayingScheduler ( ) : System
return System

Start() public method

Push newly created process on top of Stack
public Start ( ZingerSchedulerState zSchedState, int processId ) : void
zSchedState Microsoft.Zing.ZingerSchedulerState
processId int process Id of the newly created process
return void

ZingerOperation() public method

This function is provided for extending or customizing the delayingExplorer.
public ZingerOperation ( ZingerSchedulerState ZSchedulerState ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
return void