org.multiverse.utils
Class Bugshaker

java.lang.Object
  extended by org.multiverse.utils.Bugshaker
All Implemented Interfaces:
MultiverseConstants

public final class Bugshaker
extends Object
implements MultiverseConstants

Contains some utility functions for shaking out bugs. It can be used by adding this method is the code like this:

 if(MultiverseConstants.SHAKE_BUGS){shakeBugs();}
 
Since the SHAKE_BUGS field is final, it can be removed by the JIT is the bugshaking is disabled so there is no overhead.

At the moment the inside of the Bugshaker is not configurable (so no control on how much delay and how often it happens).

Author:
Peter Veentjer

Field Summary
 
Fields inherited from interface org.multiverse.MultiverseConstants
LOCKMODE_EXCLUSIVE, LOCKMODE_NONE, LOCKMODE_READ, LOCKMODE_WRITE, SHAKE_BUGS, SPIN_YIELD, TRACING_ENABLED
 
Method Summary
static void shakeBugs()
          Delays a random amount of time.
static void sleepUs(long delayUs)
          Delays a number of microseconds.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

shakeBugs

public static void shakeBugs()
Delays a random amount of time. What essentially happens is that a random number is selected and one in the n cases, a sleep is done and one in the n cases a yield is done.


sleepUs

public static void sleepUs(long delayUs)
Delays a number of microseconds. Having a delay smaller than a microsecond doesn't provide value since the minimum delay is a few microseconds. If the delay is smaller than 0, the call is ignored.

Parameters:
delayUs - the number of microseconds to delay.


Copyright © 2012. All Rights Reserved.