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