private void startFromQueue(){
  do {
    int active0=active.get();
    if (active0 == maxTasks)     break;
    if (active.compareAndSet(active0,active0 + 1)) {
      Callable<?> task=queue.poll();
      if (task == null) {
        int res=active.decrementAndGet();
        assert res >= 0 : res;
        break;
      }
      startThread(task);
    }
  }
 while (!queue.isEmpty());
}

private void startFromQueue ( ) { do { int active0 = active . get ( ) ; if ( active0 == maxTasks ) break ; if ( active . compareAndSet ( active0 , active0 + 1 ) ) { Callable < ? > task = queue . poll ( ) ; if ( task == null ) { int res = active . decrementAndGet ( ) ; assert res >= 0 : res ; break ; } startThread ( task ) ; } } while ( ! queue . isEmpty ( ) ) ; }
attempts to start task from queue .
