final void signalWork(){
  for (; ; ) {
    long c;
    int sp, i;
    WorkQueue v;
    WorkQueue[] ws;
    if ((c=ctl) >= 0L)     break;
 else     if ((sp=(int)c) == 0) {
      if ((c & ADD_WORKER) != 0L)       tryAddWorker(c);
      break;
    }
 else     if ((ws=workQueues) == null)     break;
 else     if (ws.length <= (i=sp & SMASK))     break;
 else     if ((v=ws[i]) == null)     break;
 else {
      int ns=sp & ~UNSIGNALLED;
      int vs=v.scanState;
      long nc=(v.stackPred & SP_MASK) | (UC_MASK & (c + AC_UNIT));
      if (sp == vs && U.compareAndSwapLong(this,CTL,c,nc)) {
        v.scanState=ns;
        LockSupport.unpark(v.parker);
        break;
      }
    }
  }
}

final void signalWork ( ) { for ( ; ; ) { long c ; int sp , i ; WorkQueue v ; WorkQueue [ ] ws ; if ( ( c = ctl ) >= 0L ) break ; else if ( ( sp = ( int ) c ) == 0 ) { if ( ( c & ADD_WORKER ) != 0L ) tryAddWorker ( c ) ; break ; } else if ( ( ws = workQueues ) == null ) break ; else if ( ws . length <= ( i = sp & SMASK ) ) break ; else if ( ( v = ws [ i ] ) == null ) break ; else { int ns = sp & ~ UNSIGNALLED ; int vs = v . scanState ; long nc = ( v . stackPred & SP_MASK ) | ( UC_MASK & ( c + AC_UNIT ) ) ; if ( sp == vs && U . compareAndSwapLong ( this , CTL , c , nc ) ) { v . scanState = ns ; LockSupport . unpark ( v . parker ) ; break ; } } } }
tries to create or activate a worker if too few are active .
