private WorkQueue findNonEmptyStealQueue() {
        int r = ThreadLocalRandom.current().nextInt();
        for (;;) {
            int ps = plock, m; WorkQueue[] ws; WorkQueue q;
            if ((ws = workQueues) != null && (m = ws.length - 1) >= 0) {
                for (int j = (m + 1) << 2; j >= 0; --j) {
                    if ((q = ws[(((r - j) << 1) | 1) & m]) != null &&
                        q.base - q.top < 0)
                        return q;
                }
            }
            if (plock == ps)
                return null;
        }
    }