public void run() {
    T current;

    while (!isInterrupted()) {
      /* select next thread */
      current = queue.getNext();

      if ((current != null) && (current.isAlive())) {

        /* Print Log */
        reportThreadState();
        current.setPriority(Thread.MAX_PRIORITY);
        System.err.println("********* New High Priority: "
            + current.getName());
        /* wait until time slice is over */
        schedulerSleep();
        current.setPriority(Thread.MIN_PRIORITY);

      }
    }
  }