public void completeExecutorTask(){
  ExecutorQueueItem item=null;
synchronized (_executorLock) {
    _executorTaskCount--;
    assert (_executorTaskCount >= 0);
    if (_executorQueueHead != null) {
      item=_executorQueueHead;
      _executorQueueHead=item._next;
      if (_executorQueueHead == null)       _executorQueueTail=null;
    }
  }
  if (item != null) {
    Runnable task=item.getRunnable();
    ClassLoader loader=item.getLoader();
    boolean isPriority=false;
    boolean isQueue=true;
    boolean isWake=true;
    scheduleImpl(task,loader,MAX_EXPIRE,isPriority,isQueue,isWake);
  }
}

public void completeExecutorTask ( ) { ExecutorQueueItem item = null ; synchronized ( _executorLock ) { _executorTaskCount -- ; assert ( _executorTaskCount >= 0 ) ; if ( _executorQueueHead != null ) { item = _executorQueueHead ; _executorQueueHead = item . _next ; if ( _executorQueueHead == null ) _executorQueueTail = null ; } } if ( item != null ) { Runnable task = item . getRunnable ( ) ; ClassLoader loader = item . getLoader ( ) ; boolean isPriority = false ; boolean isQueue = true ; boolean isWake = true ; scheduleImpl ( task , loader , MAX_EXPIRE , isPriority , isQueue , isWake ) ; } }
called when an executor task completes
