[cvs] / jsr166 / src / main / java / util / SplittableRandom.java Repository:
ViewVC logotype

Diff of /jsr166/src/main/java/util/SplittableRandom.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.31, Fri Feb 19 03:39:15 2016 UTC revision 1.32, Sat Feb 20 23:24:57 2016 UTC
# Line 219  Line 219 
219          return seed += gamma;          return seed += gamma;
220      }      }
221    
222        // IllegalArgumentException messages
223        static final String BAD_BOUND = "bound must be positive";
224        static final String BAD_RANGE = "bound must be greater than origin";
225        static final String BAD_SIZE  = "size must be non-negative";
226    
227      /**      /**
228       * The seed generator for default constructors.       * The seed generator for default constructors.
229       */       */
230      private static final AtomicLong defaultGen = new AtomicLong(initialSeed());      private static final AtomicLong defaultGen
231            = new AtomicLong(mix64(System.currentTimeMillis()) ^
232                             mix64(System.nanoTime()));
233    
234      private static long initialSeed() {      // at end of <clinit> to survive static initialization circularity
235        static {
236          if (java.security.AccessController.doPrivileged(          if (java.security.AccessController.doPrivileged(
237              new java.security.PrivilegedAction<Boolean>() {              new java.security.PrivilegedAction<Boolean>() {
238                  public Boolean run() {                  public Boolean run() {
# Line 234  Line 242 
242              long s = (long)seedBytes[0] & 0xffL;              long s = (long)seedBytes[0] & 0xffL;
243              for (int i = 1; i < 8; ++i)              for (int i = 1; i < 8; ++i)
244                  s = (s << 8) | ((long)seedBytes[i] & 0xffL);                  s = (s << 8) | ((long)seedBytes[i] & 0xffL);
245              return s;              defaultGen.set(s);
246          }          }
         return (mix64(System.currentTimeMillis()) ^  
                 mix64(System.nanoTime()));  
247      }      }
248    
     // IllegalArgumentException messages  
     static final String BAD_BOUND = "bound must be positive";  
     static final String BAD_RANGE = "bound must be greater than origin";  
     static final String BAD_SIZE  = "size must be non-negative";  
   
249      /*      /*
250       * Internal versions of nextX methods used by streams, as well as       * Internal versions of nextX methods used by streams, as well as
251       * the public nextX(origin, bound) methods.  These exist mainly to       * the public nextX(origin, bound) methods.  These exist mainly to

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8