code: @AutoreleasePool
      private boolean runTask(boolean isFirstRun, Thread wt, Worker w) {
          Runnable task = null;
          if (isFirstRun) {
              task = w.firstTask;
              w.firstTask = null;
          }
          if (task == null && (task = getTask()) == null) {
              return true;
          }
          w.lock();
          // If pool is stopping, ensure thread is interrupted;
          // if not, ensure thread is not interrupted.  This
          // requires a recheck in second case to deal with
          // shutdownNow race while clearing interrupt
          if ((runStateAtLeast(ctl.get(), STOP) ||
               (Thread.interrupted() &&
                runStateAtLeast(ctl.get(), STOP))) &&
              !wt.isInterrupted())
              wt.interrupt();
          try {
              beforeExecute(wt, task);
              Throwable thrown = null;
              try {
                  task.run();
              } catch (RuntimeException x) {
                  thrown = x; throw x;
              } catch (Error x) {
                  thrown = x; throw x;
              } catch (Throwable x) {
                  thrown = x; throw new Error(x);
              } finally {
                  afterExecute(task, thrown);
              }
          } finally {
              task = null;
              w.completedTasks++;
              w.unlock();
          }
          return false;
      }
docs: Runs a single scheduled and ready task.
  
  @param isFirstRun Whether this is the first scheduled task to be run
  @param wt Worker thread
  @param w Worker
  @return true if there are no more tasks left ready for execution