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;
        }
    }
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 ; } }
Gets and removes a local or stolen task for the given worker.

@return a task, if available