private void processQueue() {
    while (true) {
      CycWorker worker = null;
      try {
        worker = getNextWorker();
      } catch (InterruptedException ie) {
        if (worker == null) {
          continue; //Go back to start of while loop and try again.
        }
      }
      worker.start();
      try {
        worker.getThread().join(); //Block until worker's thread is done.
      } catch (InterruptedException ex) {
        ex.printStackTrace();
      } catch (NullPointerException ex) {
        //Already done.
      }
    }
  }