private void tryCreateExternalQueue ( int index ) { AuxState aux ; if ( ( aux = auxState ) != null && index >= 0 ) { WorkQueue q = new WorkQueue ( this , null ) ; q . config = index ; q . scanState = ~ UNSIGNALLED ; q . qlock = 1 ; // lock queue boolean installed = false ; aux . lock ( ) ; try { // lock pool to install WorkQueue [ ] ws ; if ( ( ws = workQueues ) != null && index < ws . length && ws [ index ] == null ) { ws [ index ] = q ; // else throw away installed = true ; } } finally { aux . unlock ( ) ; } if ( installed ) { try { q . growArray ( ) ; } finally { q . qlock = 0 ; } } } }
Constructs and tries to install a new external queue failing if the workQueues array already has a queue at the given index .