uk.ac.man.cs.rainbow.simulator.rasm
Class NDChoice

java.lang.Object
  |
  +--uk.ac.man.cs.rainbow.simulator.Instruction
        |
        +--uk.ac.man.cs.rainbow.simulator.rasm.NDChoice
All Implemented Interfaces:
Serializable

public class NDChoice
extends Instruction

Non-deterministic jump.

Jumps to an address chosen randomly from the supplied collection. If n = 0, no jump is performed and the next instruction to be executed will be the one following this instruction, and if n = 1 then the sole jump available is always taken. Note that this instruction might trigger rescheduling of the thread in other cases.

addr0 ... addrn-1 n -

See Also:
Jump, NDValue, Serialized Form

Inner classes inherited from class uk.ac.man.cs.rainbow.simulator.Instruction
Instruction.MACRO
 
Constructor Summary
NDChoice()
           
NDChoice(RASMCode code)
           
 
Method Summary
protected  boolean execute(RASMThread thread)
          Make this instruction execute in the given context.
 String toString()
           
 
Methods inherited from class uk.ac.man.cs.rainbow.simulator.Instruction
addClass, getInstruction, getInstruction, getInstruction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NDChoice

public NDChoice()

NDChoice

public NDChoice(RASMCode code)
Method Detail

toString

public String toString()
Overrides:
toString in class Object

execute

protected boolean execute(RASMThread thread)
                   throws RASMThread.Exception
Description copied from class: Instruction
Make this instruction execute in the given context.
Overrides:
execute in class Instruction
Following copied from class: uk.ac.man.cs.rainbow.simulator.Instruction
Throws:
RainbowException - All sorts of things can go wrong during execution...