private void startupProcessor(){
  Processor processor=processorRef.get();
  if (processor == null) {
    processor=new Processor();
    if (processorRef.compareAndSet(null,processor)) {
      executor.execute(new NamePreservingRunnable(processor,threadName));
    }
  }
  wakeup();
}

private void startupProcessor ( ) { Processor processor = processorRef . get ( ) ; if ( processor == null ) { processor = new Processor ( ) ; if ( processorRef . compareAndSet ( null , processor ) ) { executor . execute ( new NamePreservingRunnable ( processor , threadName ) ) ; } } wakeup ( ) ; }
starts the inner processor , asking the executor to pick a thread in its pool . the runnable will be renamed
