/** * Restarts a paused robot. * * <p>Must be called from the robot's main thread. */ public static void reactivate() { // If we should die, then... do that. if (shouldDie) { killer.kill(); } if (bytecodesLeft < 0) { bytecodesLeft += BYTECODE_LIMIT; } else { bytecodesLeft = BYTECODE_LIMIT; } }
/** * Increments the currently active robot's bytecode count by the given amount. If the robot * exceeds its bytecode limit for the round, this method will block until the robot's next round. * Should be called at the end of every basic block. * * <p>THIS METHOD IS CALLED BY THE INSTRUMENTER. * * @param numBytecodes the number of bytecodes the robot just executed */ @SuppressWarnings("unused") public static void incrementBytecodes(int numBytecodes) { // If we should die, then... do that. if (shouldDie) { killer.kill(); } bytecodesLeft -= numBytecodes; while (bytecodesLeft <= 0) { pause(); } }