uk.ac.man.cs.rainbow.deadlock
Class PODeadlockChecker
java.lang.Object
|
+--uk.ac.man.cs.rainbow.deadlock.DeadlockChecker
|
+--uk.ac.man.cs.rainbow.deadlock.PODeadlockChecker
- public class PODeadlockChecker
- extends DeadlockChecker
Check a scheduling system for deadlock. Uses agressive partial
ordering to reduce the state space searched by only searching all
the alternatives at non-deterministic points.
- See Also:
StateEngine
,
StateEnumerator
,
StateEnumerator.isNondeterministic()
Method Summary |
int |
step()
Perform a single deadlock step. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PODeadlockChecker
public PODeadlockChecker(StateEnumerator enum)
throws RainbowException
- Create a new deadlock-checker.
- Parameters:
enumerator
- The simulation that is to be deadlock-checked.- Throws:
RainbowException
- If something goes wrong during initialisation of the scheduler.
step
public int step()
throws RainbowException
- Perform a single deadlock step. Note that when the system
decides to backtrack, it backtracks until it runs out of states
to backtrack into or it reaches a nondeterministic state.
- Overrides:
step
in class DeadlockChecker
- Returns:
- Whether the system has searched the whole state space, found a
deadlock or still has more work to do.
- Throws:
RainbowException
- If something goes wrong during a step.- See Also:
DeadlockChecker.DEADLOCK
,
DeadlockChecker.FINISHED
,
DeadlockChecker.WORKING
,
StateEnumerator.isNondeterministic()