Search in sources :

Example 1 with TaskQueue

use of org.apache.tomcat.util.threads.TaskQueue in project tomcat70 by apache.

the class AbstractEndpoint method createExecutor.

public void createExecutor() {
    internalExecutor = true;
    TaskQueue taskqueue = new TaskQueue();
    TaskThreadFactory tf = new TaskThreadFactory(getName() + "-exec-", daemon, getThreadPriority());
    executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), 60, TimeUnit.SECONDS, taskqueue, tf);
    taskqueue.setParent((ThreadPoolExecutor) executor);
}
Also used : TaskQueue(org.apache.tomcat.util.threads.TaskQueue) ThreadPoolExecutor(org.apache.tomcat.util.threads.ThreadPoolExecutor) TaskThreadFactory(org.apache.tomcat.util.threads.TaskThreadFactory)

Example 2 with TaskQueue

use of org.apache.tomcat.util.threads.TaskQueue in project tomcat70 by apache.

the class AbstractEndpoint method shutdownExecutor.

public void shutdownExecutor() {
    if (executor != null && internalExecutor) {
        if (executor instanceof ThreadPoolExecutor) {
            // this is our internal one, so we need to shut it down
            ThreadPoolExecutor tpe = (ThreadPoolExecutor) executor;
            tpe.shutdownNow();
            long timeout = getExecutorTerminationTimeoutMillis();
            if (timeout > 0) {
                try {
                    tpe.awaitTermination(timeout, TimeUnit.MILLISECONDS);
                } catch (InterruptedException e) {
                // Ignore
                }
                if (tpe.isTerminating()) {
                    getLog().warn(sm.getString("endpoint.warn.executorShutdown", getName()));
                }
            }
            TaskQueue queue = (TaskQueue) tpe.getQueue();
            queue.setParent(null);
        }
        executor = null;
    }
}
Also used : TaskQueue(org.apache.tomcat.util.threads.TaskQueue) ThreadPoolExecutor(org.apache.tomcat.util.threads.ThreadPoolExecutor)

Example 3 with TaskQueue

use of org.apache.tomcat.util.threads.TaskQueue in project tomcat by apache.

the class AbstractEndpoint method createExecutor.

public void createExecutor() {
    internalExecutor = true;
    TaskQueue taskqueue = new TaskQueue();
    TaskThreadFactory tf = new TaskThreadFactory(getName() + "-exec-", daemon, getThreadPriority());
    executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), 60, TimeUnit.SECONDS, taskqueue, tf);
    taskqueue.setParent((ThreadPoolExecutor) executor);
}
Also used : TaskQueue(org.apache.tomcat.util.threads.TaskQueue) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) ThreadPoolExecutor(org.apache.tomcat.util.threads.ThreadPoolExecutor) TaskThreadFactory(org.apache.tomcat.util.threads.TaskThreadFactory)

Example 4 with TaskQueue

use of org.apache.tomcat.util.threads.TaskQueue in project tomcat70 by apache.

the class StandardThreadExecutor method startInternal.

/**
 * Start the component and implement the requirements
 * of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
 *
 * @exception LifecycleException if this component detects a fatal error
 *  that prevents this component from being used
 */
@Override
protected void startInternal() throws LifecycleException {
    taskqueue = new TaskQueue(maxQueueSize);
    TaskThreadFactory tf = new TaskThreadFactory(namePrefix, daemon, getThreadPriority());
    executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS, taskqueue, tf);
    executor.setThreadRenewalDelay(threadRenewalDelay);
    if (prestartminSpareThreads) {
        executor.prestartAllCoreThreads();
    }
    taskqueue.setParent(executor);
    setState(LifecycleState.STARTING);
}
Also used : TaskQueue(org.apache.tomcat.util.threads.TaskQueue) ThreadPoolExecutor(org.apache.tomcat.util.threads.ThreadPoolExecutor) TaskThreadFactory(org.apache.tomcat.util.threads.TaskThreadFactory)

Example 5 with TaskQueue

use of org.apache.tomcat.util.threads.TaskQueue in project tomcat by apache.

the class StandardThreadExecutor method startInternal.

/**
 * Start the component and implement the requirements
 * of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
 *
 * @exception LifecycleException if this component detects a fatal error
 *  that prevents this component from being used
 */
@Override
protected void startInternal() throws LifecycleException {
    taskqueue = new TaskQueue(maxQueueSize);
    TaskThreadFactory tf = new TaskThreadFactory(namePrefix, daemon, getThreadPriority());
    executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS, taskqueue, tf);
    executor.setThreadRenewalDelay(threadRenewalDelay);
    if (prestartminSpareThreads) {
        executor.prestartAllCoreThreads();
    }
    taskqueue.setParent(executor);
    setState(LifecycleState.STARTING);
}
Also used : TaskQueue(org.apache.tomcat.util.threads.TaskQueue) ThreadPoolExecutor(org.apache.tomcat.util.threads.ThreadPoolExecutor) TaskThreadFactory(org.apache.tomcat.util.threads.TaskThreadFactory)

Aggregations

TaskQueue (org.apache.tomcat.util.threads.TaskQueue)6 ThreadPoolExecutor (org.apache.tomcat.util.threads.ThreadPoolExecutor)6 TaskThreadFactory (org.apache.tomcat.util.threads.TaskThreadFactory)4 ScheduledThreadPoolExecutor (java.util.concurrent.ScheduledThreadPoolExecutor)2 Executor (java.util.concurrent.Executor)1 ResizableExecutor (org.apache.tomcat.util.threads.ResizableExecutor)1