code: @Override
    public void run()
    {
      try {
        _launcher.onChildIdleBegin();
        _launcher.onChildThreadLaunchBegin();
        _pool.addThread(this);
        
        runTasks();
      } catch (Throwable e) {
        log.log(Level.WARNING, e.toString(), e);
      } finally {
        _pool.removeThread(this);
        _launcher.onChildIdleEnd();
        _launcher.onChildThreadLaunchEnd();
      }
    }
docs: The main thread execution method.