[freenet-cvs] r13852 - trunk/freenet/src/org/spaceroots/mantissa/random

nextgens at freenetproject.org nextgens at freenetproject.org
Sat Jun 30 23:23:29 UTC 2007


Author: nextgens
Date: 2007-06-30 23:23:29 +0000 (Sat, 30 Jun 2007)
New Revision: 13852

Modified:
   trunk/freenet/src/org/spaceroots/mantissa/random/MersenneTwister.java
Log:
Synchronize MersenneTwister ... it's a good idea to do it before we run into problems

Modified: trunk/freenet/src/org/spaceroots/mantissa/random/MersenneTwister.java
===================================================================
--- trunk/freenet/src/org/spaceroots/mantissa/random/MersenneTwister.java	2007-06-30 23:18:55 UTC (rev 13851)
+++ trunk/freenet/src/org/spaceroots/mantissa/random/MersenneTwister.java	2007-06-30 23:23:29 UTC (rev 13852)
@@ -75,7 +75,7 @@
 	private static final int   M     = 397;
 	private static final int[] MAG01 = { 0x0, 0x9908b0df };
 
-	private int[] mt;
+	private final int[] mt;
 	private int   mti;
 
 	/** Creates a new random number generator.
@@ -123,7 +123,7 @@
 	 * generator built with the same seed.</p>
 	 * @param seed the initial seed (32 bits integer)
 	 */
-	public void setSeed(int seed) {
+	public synchronized void setSeed(int seed) {
 		// we use a long masked by 0xffffffffL as a poor man unsigned int
 		long longMT = seed;
 		mt[0]= (int) longMT;
@@ -138,7 +138,7 @@
 	/**
 	 * Seed from byte[].
 	 */
-	public void setSeed(byte[] seed) {
+	public synchronized void setSeed(byte[] seed) {
 		int[] seeds = new int[seed.length/4];
 		for(int i=0;i<seeds.length;i+=4) {
 			seeds[i] = Fields.bytesToInt(seed, i);
@@ -152,7 +152,7 @@
 	 * @param seed the initial seed (32 bits integers array), if null
 	 * the seed of the generator will be related to the current time
 	 */
-	public void setSeed(int[] seed) {
+	public synchronized void setSeed(int[] seed) {
 		if (seed == null) {
 			setSeed(System.currentTimeMillis());
 			return;
@@ -198,7 +198,7 @@
 	 * generator built with the same seed.</p>
 	 * @param seed the initial seed (64 bits integer)
 	 */
-	public void setSeed(long seed) {
+	public synchronized void setSeed(long seed) {
 		if (mt == null) {
 			// this is probably a spurious call from base class constructor,
 			// we do nothing and wait for the setSeed in our own
@@ -218,7 +218,7 @@
 	 * #nextLong nextLong}.</p>
 	 * @param bits number of random bits to produce
 	 */
-	protected int next(int bits) {
+	protected synchronized int next(int bits) {
 		int y;
 
 		if (mti >= N) { // generate N words at one time




More information about the cvs mailing list