code: final ForkJoinTask<?> nextTaskFor(WorkQueue w) {
          for (ForkJoinTask<?> t;;) {
              WorkQueue q;
              if ((t = w.nextLocalTask()) != null)
                  return t;
              if ((q = findNonEmptyStealQueue()) == null)
                  return null;
              if ((t = q.pollAt(q.base)) != null)
                  return t;
          }
      }
docs: Gets and removes a local or stolen task for the given worker.
  
  @return a task, if available