@Override final public void run(){
  try {
    while (true) {
synchronized (this) {
        while (count >= pool.length) {
          wait();
        }
      }
      int counter, quanta;
      byte v=0;
      for (counter=quanta=0; (counter < 64000) && (quanta < 6); quanta++) {
        try {
          BogusThread bt=new BogusThread();
          Thread t=new Thread(seedGroup,bt,"SeedGenerator Thread");
          t.start();
        }
 catch (        Exception e) {
          throw new InternalError("internal error: " + "SeedGenerator thread creation error.",e);
        }
        int latch=0;
        long l=System.currentTimeMillis() + 250;
        while (System.currentTimeMillis() < l) {
synchronized (this) {
          }
          ;
          latch++;
        }
        v^=rndTab[latch % 255];
        counter+=latch;
      }
synchronized (this) {
        pool[end]=v;
        end++;
        count++;
        if (end >= pool.length) {
          end=0;
        }
        notifyAll();
      }
    }
  }
 catch (  Exception e) {
    throw new InternalError("internal error: " + "SeedGenerator thread generated an exception.",e);
  }
}

@ Override final public void run ( ) { try { while ( true ) { synchronized ( this ) { while ( count >= pool . length ) { wait ( ) ; } } int counter , quanta ; byte v = 0 ; for ( counter = quanta = 0 ; ( counter < 64000 ) && ( quanta < 6 ) ; quanta ++ ) { try { BogusThread bt = new BogusThread ( ) ; Thread t = new Thread ( seedGroup , bt , "SeedGenerator Thread" ) ; t . start ( ) ; } catch ( Exception e ) { throw new InternalError ( "internal error: " + "SeedGenerator thread creation error." , e ) ; } int latch = 0 ; long l = System . currentTimeMillis ( ) + 250 ; while ( System . currentTimeMillis ( ) < l ) { synchronized ( this ) { } ; latch ++ ; } v ^= rndTab [ latch % 255 ] ; counter += latch ; } synchronized ( this ) { pool [ end ] = v ; end ++ ; count ++ ; if ( end >= pool . length ) { end = 0 ; } notifyAll ( ) ; } } } catch ( Exception e ) { throw new InternalError ( "internal error: " + "SeedGenerator thread generated an exception." , e ) ; } }
this method does the actual work . it collects random bytes and pushes them into the queue .
