question: private void externalSubmit ( ForkJoinTask < ? > task ) { int r ; if ( ( r = ThreadLocalRandom . getProbe ( ) ) == 0 ) { ThreadLocalRandom . localInit ( ) ; r = ThreadLocalRandom . getProbe ( ) ; } for ( ; ; ) { WorkQueue [ ] ws ; WorkQueue q ; int rs , m , k ; boolean move = false ; if ( ( rs = runState ) < 0 ) { tryTerminate ( false , false ) ; throw new RejectedExecutionException ( ) ; } else if ( ( rs & STARTED ) == 0 || ( ( ws = workQueues ) == null || ( m = ws . length - 1 ) < 0 ) ) { int ns = 0 ; rs = lockRunState ( ) ; try { if ( ( rs & STARTED ) == 0 ) { U . compareAndSwapObject ( this , STEALCOUNTER , null , new AtomicLong ( ) ) ; int p = config & SMASK ; int n = ( p > 1 ) ? p - 1 : 1 ; n |= n > > > 1 ; n |= n > > > 2 ; n |= n > > > 4 ; n |= n > > > 8 ; n |= n > > > 16 ; n = ( n + 1 ) << 1 ; workQueues = new WorkQueue [ n ] ; ns = STARTED ; } } finally { unlockRunState ( rs , ( rs & ~ RSLOCK ) | ns ) ; } } else if ( ( q = ws [ k = r & m & SQMASK ] ) != null ) { if ( q . qlock == 0 && U . compareAndSwapInt ( q , QLOCK , 0 , 1 ) ) { ForkJoinTask < ? > [ ] a = q . array ; int s = q . top ; boolean submitted = false ; try { if ( ( a != null && a . length > s + 1 - q . base ) || ( a = q . growArray ( ) ) != null ) { int j = ( ( ( a . length - 1 ) & s ) << ASHIFT ) + ABASE ; U . putOrderedObject ( a , j , task ) ; U . putOrderedInt ( q , QTOP , s + 1 ) ; submitted = true ; } } finally { U . compareAndSwapInt ( q , QLOCK , 1 , 0 ) ; } if ( submitted ) { signalWork ( ws , q ) ; return ; } } move = true ; } else if ( ( ( rs = runState ) & RSLOCK ) == 0 ) { q = new WorkQueue ( this , null ) ; q . hint = r ; q . config = k | SHARED_QUEUE ; q . scanState = INACTIVE ; rs = lockRunState ( ) ; if ( rs > 0 && ( ws = workQueues ) != null && k < ws . length && ws [ k ] == null ) ws [ k ] = q ; unlockRunState ( rs , rs & ~ RSLOCK ) ; } else move = true ; if ( move ) r = ThreadLocalRandom . advanceProbe ( r ) ; } }
target:  Full version of externalPush, handling uncommon cases, as well as performing secondary initialization upon the first submission of the first task to the pool.  It also detects first submission by an external thread and creates a new shared queue if the one at index if empty or contended.