code: private WorkQueue findNonEmptyStealQueue(WorkQueue w) {
          // Similar to loop in scan(), but ignoring submissions
          int r = w.seed; r ^= r << 13; r ^= r >>> 17; w.seed = r ^= r << 5;
          int step = (r >>> 16) | 1;
          for (WorkQueue[] ws;;) {
              int rs = runState, m;
              if ((ws = workQueues) == null || (m = ws.length - 1) < 1)
                  return null;
              for (int j = (m + 1) << 2; ; r += step) {
                  WorkQueue q = ws[((r << 1) | 1) & m];
                  if (q != null && !q.isEmpty())
                      return q;
                  else if (--j < 0) {
                      if (runState == rs)
                          return null;
                      break;
                  }
              }
          }
      }
docs: Returns a (probably) non-empty steal queue, if one is found
  during a random, then cyclic scan, else null.  This method must
  be retried by caller if, by the time it tries to use the queue,
  it is empty.