Skip to content
Snippets Groups Projects
Commit f50848b0 authored by nitsanw's avatar nitsanw Committed by Sean Busbey
Browse files

[test] Improve delay code

Add option to randomize delay(default=true, as before)
parent 0b024834
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,8 @@ import java.util.Properties; ...@@ -22,6 +22,8 @@ import java.util.Properties;
import java.util.Set; import java.util.Set;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Vector; import java.util.Vector;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;
/** /**
...@@ -32,11 +34,15 @@ public class BasicDB extends DB ...@@ -32,11 +34,15 @@ public class BasicDB extends DB
public static final String VERBOSE="basicdb.verbose"; public static final String VERBOSE="basicdb.verbose";
public static final String VERBOSE_DEFAULT="true"; public static final String VERBOSE_DEFAULT="true";
public static final String SIMULATE_DELAY="basicdb.simulatedelay"; public static final String SIMULATE_DELAY="basicdb.simulatedelay";
public static final String SIMULATE_DELAY_DEFAULT="0"; public static final String SIMULATE_DELAY_DEFAULT="0";
public static final String RANDOMIZE_DELAY="basicdb.ranomizedelay";
public static final String RANDOMIZE_DELAY_DEFAULT="true";
boolean verbose;
boolean verbose; boolean randomizedelay;
int todelay; int todelay;
public BasicDB() public BasicDB()
...@@ -49,14 +55,21 @@ public class BasicDB extends DB ...@@ -49,14 +55,21 @@ public class BasicDB extends DB
{ {
if (todelay>0) if (todelay>0)
{ {
try long delayNs;
{ if (randomizedelay) {
Thread.sleep((long)Utils.random().nextInt(todelay)); delayNs = TimeUnit.MILLISECONDS.toNanos(Utils.random().nextInt(todelay));
} if (delayNs == 0) {
catch (InterruptedException e) return;
{ }
//do nothing }
} else {
delayNs = TimeUnit.MILLISECONDS.toNanos(todelay);
}
long deadline = System.nanoTime() + delayNs;
do {
LockSupport.parkNanos(delayNs);
} while (System.nanoTime() < deadline && !Thread.interrupted());
} }
} }
...@@ -69,7 +82,7 @@ public class BasicDB extends DB ...@@ -69,7 +82,7 @@ public class BasicDB extends DB
{ {
verbose=Boolean.parseBoolean(getProperties().getProperty(VERBOSE, VERBOSE_DEFAULT)); verbose=Boolean.parseBoolean(getProperties().getProperty(VERBOSE, VERBOSE_DEFAULT));
todelay=Integer.parseInt(getProperties().getProperty(SIMULATE_DELAY, SIMULATE_DELAY_DEFAULT)); todelay=Integer.parseInt(getProperties().getProperty(SIMULATE_DELAY, SIMULATE_DELAY_DEFAULT));
randomizedelay=Boolean.parseBoolean(getProperties().getProperty(RANDOMIZE_DELAY, RANDOMIZE_DELAY_DEFAULT));
if (verbose) if (verbose)
{ {
System.out.println("***************** properties *****************"); System.out.println("***************** properties *****************");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment