cassandra-server
Version:
A thin Javascript wrapper around Apache Cassandra to provide out of the box server support
690 lines (686 loc) • 33 kB
HTML
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_67) on Sun Sep 07 15:29:31 CEST 2014 -->
<title>DebuggableThreadPoolExecutor (apache-cassandra API)</title>
<meta name="date" content="2014-09-07">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DebuggableThreadPoolExecutor (apache-cassandra API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DebuggableThreadPoolExecutor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/cassandra/concurrent/IExecutorMBean.html" title="interface in org.apache.cassandra.concurrent"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html" target="_top">Frames</a></li>
<li><a href="DebuggableThreadPoolExecutor.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li><a href="#nested_classes_inherited_from_class_java.util.concurrent.ThreadPoolExecutor">Nested</a> | </li>
<li><a href="#field_summary">Field</a> | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li><a href="#field_detail">Field</a> | </li>
<li><a href="#constructor_detail">Constr</a> | </li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.cassandra.concurrent</div>
<h2 title="Class DebuggableThreadPoolExecutor" class="title">Class DebuggableThreadPoolExecutor</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.util.concurrent.AbstractExecutorService</li>
<li>
<ul class="inheritance">
<li>java.util.concurrent.ThreadPoolExecutor</li>
<li>
<ul class="inheritance">
<li>org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.util.concurrent.Executor, java.util.concurrent.ExecutorService, <a href="../../../../org/apache/cassandra/concurrent/TracingAwareExecutorService.html" title="interface in org.apache.cassandra.concurrent">TracingAwareExecutorService</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent">JMXEnabledThreadPoolExecutor</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">DebuggableThreadPoolExecutor</span>
extends java.util.concurrent.ThreadPoolExecutor
implements <a href="../../../../org/apache/cassandra/concurrent/TracingAwareExecutorService.html" title="interface in org.apache.cassandra.concurrent">TracingAwareExecutorService</a></pre>
<div class="block">This class encorporates some Executor best practices for Cassandra. Most of the executors in the system
should use or extend this. There are two main improvements over a vanilla TPE:
- If a task throws an exception, the default uncaught exception handler will be invoked; if there is
no such handler, the exception will be logged.
- MaximumPoolSize is not supported. Here is what that means (quoting TPE javadoc):
If fewer than corePoolSize threads are running, the Executor always prefers adding a new thread rather than queuing.
If corePoolSize or more threads are running, the Executor always prefers queuing a request rather than adding a new thread.
If a request cannot be queued, a new thread is created unless this would exceed maximumPoolSize, in which case, the task will be rejected.
We don't want this last stage of creating new threads if the queue is full; it makes it needlessly difficult to
reason about the system's behavior. In other words, if DebuggableTPE has allocated our maximum number of (core)
threads and the queue is full, we want the enqueuer to block. But to allow the number of threads to drop if a
stage is less busy, core thread timeout is enabled.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_java.util.concurrent.ThreadPoolExecutor">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor</h3>
<code>java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy</code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.util.concurrent.RejectedExecutionHandler</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#blockingExecutionHandler">blockingExecutionHandler</a></strong></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#logger">logger</a></strong></code> </td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#DebuggableThreadPoolExecutor(int,%20int,%20long,%20java.util.concurrent.TimeUnit,%20java.util.concurrent.BlockingQueue,%20java.util.concurrent.ThreadFactory)">DebuggableThreadPoolExecutor</a></strong>(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
java.util.concurrent.TimeUnit unit,
java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue,
java.util.concurrent.ThreadFactory threadFactory)</code> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#DebuggableThreadPoolExecutor(int,%20long,%20java.util.concurrent.TimeUnit,%20java.util.concurrent.BlockingQueue,%20java.util.concurrent.ThreadFactory)">DebuggableThreadPoolExecutor</a></strong>(int corePoolSize,
long keepAliveTime,
java.util.concurrent.TimeUnit unit,
java.util.concurrent.BlockingQueue<java.lang.Runnable> queue,
java.util.concurrent.ThreadFactory factory)</code> </td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#DebuggableThreadPoolExecutor(java.lang.String,%20int)">DebuggableThreadPoolExecutor</a></strong>(java.lang.String threadPoolName,
int priority)</code> </td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#afterExecute(java.lang.Runnable,%20java.lang.Throwable)">afterExecute</a></strong>(java.lang.Runnable r,
java.lang.Throwable t)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#beforeExecute(java.lang.Thread,%20java.lang.Runnable)">beforeExecute</a></strong>(java.lang.Thread t,
java.lang.Runnable r)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent">DebuggableThreadPoolExecutor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#createWithFixedPoolSize(java.lang.String,%20int)">createWithFixedPoolSize</a></strong>(java.lang.String threadPoolName,
int size)</code>
<div class="block">Returns a ThreadPoolExecutor with a fixed number of threads.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent">DebuggableThreadPoolExecutor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#createWithMaximumPoolSize(java.lang.String,%20int,%20int,%20java.util.concurrent.TimeUnit)">createWithMaximumPoolSize</a></strong>(java.lang.String threadPoolName,
int size,
int keepAliveTime,
java.util.concurrent.TimeUnit unit)</code>
<div class="block">Returns a ThreadPoolExecutor with a fixed maximum number of threads, but whose
threads are terminated when idle for too long.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#execute(java.lang.Runnable)">execute</a></strong>(java.lang.Runnable command)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#execute(java.lang.Runnable,%20org.apache.cassandra.tracing.TraceState)">execute</a></strong>(java.lang.Runnable command,
<a href="../../../../org/apache/cassandra/tracing/TraceState.html" title="class in org.apache.cassandra.tracing">TraceState</a> state)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.Throwable</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#extractThrowable(java.lang.Runnable)">extractThrowable</a></strong>(java.lang.Runnable runnable)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#handleOrLog(java.lang.Throwable)">handleOrLog</a></strong>(java.lang.Throwable t)</code>
<div class="block">Send @param t to the default uncaught exception handler, or log it if none such is set up</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#logExceptionsAfterExecute(java.lang.Runnable,%20java.lang.Throwable)">logExceptionsAfterExecute</a></strong>(java.lang.Runnable r,
java.lang.Throwable t)</code>
<div class="block">Send @param t and any exception wrapped by @param r to the default uncaught exception handler,
or log them if none such is set up</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#maybeExecuteImmediately(java.lang.Runnable)">maybeExecuteImmediately</a></strong>(java.lang.Runnable command)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#maybeResetTraceSessionWrapper(java.lang.Runnable)">maybeResetTraceSessionWrapper</a></strong>(java.lang.Runnable r)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <T> java.util.concurrent.RunnableFuture<T></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#newTaskFor(java.util.concurrent.Callable)">newTaskFor</a></strong>(java.util.concurrent.Callable<T> callable)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <T> java.util.concurrent.RunnableFuture<T></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#newTaskFor(java.lang.Runnable,%20T)">newTaskFor</a></strong>(java.lang.Runnable runnable,
T result)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#onFinalAccept(java.lang.Runnable)">onFinalAccept</a></strong>(java.lang.Runnable task)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#onFinalRejection(java.lang.Runnable)">onFinalRejection</a></strong>(java.lang.Runnable task)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html#onInitialRejection(java.lang.Runnable)">onInitialRejection</a></strong>(java.lang.Runnable task)</code> </td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.util.concurrent.ThreadPoolExecutor">
<!-- -->
</a>
<h3>Methods inherited from class java.util.concurrent.ThreadPoolExecutor</h3>
<code>allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow, terminated, toString</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.util.concurrent.AbstractExecutorService">
<!-- -->
</a>
<h3>Methods inherited from class java.util.concurrent.AbstractExecutorService</h3>
<code>invokeAll, invokeAll, invokeAny, invokeAny, submit, submit, submit</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class java.lang.Object</h3>
<code>clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.util.concurrent.ExecutorService">
<!-- -->
</a>
<h3>Methods inherited from interface java.util.concurrent.ExecutorService</h3>
<code>awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow, submit, submit, submit</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>protected static final org.slf4j.Logger logger</pre>
</li>
</ul>
<a name="blockingExecutionHandler">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>blockingExecutionHandler</h4>
<pre>public static final java.util.concurrent.RejectedExecutionHandler blockingExecutionHandler</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DebuggableThreadPoolExecutor(java.lang.String, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DebuggableThreadPoolExecutor</h4>
<pre>public DebuggableThreadPoolExecutor(java.lang.String threadPoolName,
int priority)</pre>
</li>
</ul>
<a name="DebuggableThreadPoolExecutor(int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue, java.util.concurrent.ThreadFactory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DebuggableThreadPoolExecutor</h4>
<pre>public DebuggableThreadPoolExecutor(int corePoolSize,
long keepAliveTime,
java.util.concurrent.TimeUnit unit,
java.util.concurrent.BlockingQueue<java.lang.Runnable> queue,
java.util.concurrent.ThreadFactory factory)</pre>
</li>
</ul>
<a name="DebuggableThreadPoolExecutor(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue, java.util.concurrent.ThreadFactory)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DebuggableThreadPoolExecutor</h4>
<pre>public DebuggableThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
java.util.concurrent.TimeUnit unit,
java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue,
java.util.concurrent.ThreadFactory threadFactory)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="createWithFixedPoolSize(java.lang.String, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createWithFixedPoolSize</h4>
<pre>public static <a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent">DebuggableThreadPoolExecutor</a> createWithFixedPoolSize(java.lang.String threadPoolName,
int size)</pre>
<div class="block">Returns a ThreadPoolExecutor with a fixed number of threads.
When all threads are actively executing tasks, new tasks are queued.
If (most) threads are expected to be idle most of the time, prefer createWithMaxSize() instead.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>threadPoolName</code> - the name of the threads created by this executor</dd><dd><code>size</code> - the fixed number of threads for this executor</dd>
<dt><span class="strong">Returns:</span></dt><dd>the new DebuggableThreadPoolExecutor</dd></dl>
</li>
</ul>
<a name="createWithMaximumPoolSize(java.lang.String, int, int, java.util.concurrent.TimeUnit)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createWithMaximumPoolSize</h4>
<pre>public static <a href="../../../../org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent">DebuggableThreadPoolExecutor</a> createWithMaximumPoolSize(java.lang.String threadPoolName,
int size,
int keepAliveTime,
java.util.concurrent.TimeUnit unit)</pre>
<div class="block">Returns a ThreadPoolExecutor with a fixed maximum number of threads, but whose
threads are terminated when idle for too long.
When all threads are actively executing tasks, new tasks are queued.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>threadPoolName</code> - the name of the threads created by this executor</dd><dd><code>size</code> - the maximum number of threads for this executor</dd><dd><code>keepAliveTime</code> - the time an idle thread is kept alive before being terminated</dd><dd><code>unit</code> - tht time unit for <code>keepAliveTime</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the new DebuggableThreadPoolExecutor</dd></dl>
</li>
</ul>
<a name="onInitialRejection(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onInitialRejection</h4>
<pre>protected void onInitialRejection(java.lang.Runnable task)</pre>
</li>
</ul>
<a name="onFinalAccept(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onFinalAccept</h4>
<pre>protected void onFinalAccept(java.lang.Runnable task)</pre>
</li>
</ul>
<a name="onFinalRejection(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onFinalRejection</h4>
<pre>protected void onFinalRejection(java.lang.Runnable task)</pre>
</li>
</ul>
<a name="execute(java.lang.Runnable, org.apache.cassandra.tracing.TraceState)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execute</h4>
<pre>public void execute(java.lang.Runnable command,
<a href="../../../../org/apache/cassandra/tracing/TraceState.html" title="class in org.apache.cassandra.tracing">TraceState</a> state)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/cassandra/concurrent/TracingAwareExecutorService.html#execute(java.lang.Runnable,%20org.apache.cassandra.tracing.TraceState)">execute</a></code> in interface <code><a href="../../../../org/apache/cassandra/concurrent/TracingAwareExecutorService.html" title="interface in org.apache.cassandra.concurrent">TracingAwareExecutorService</a></code></dd>
</dl>
</li>
</ul>
<a name="maybeExecuteImmediately(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeExecuteImmediately</h4>
<pre>public void maybeExecuteImmediately(java.lang.Runnable command)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/cassandra/concurrent/TracingAwareExecutorService.html#maybeExecuteImmediately(java.lang.Runnable)">maybeExecuteImmediately</a></code> in interface <code><a href="../../../../org/apache/cassandra/concurrent/TracingAwareExecutorService.html" title="interface in org.apache.cassandra.concurrent">TracingAwareExecutorService</a></code></dd>
</dl>
</li>
</ul>
<a name="execute(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execute</h4>
<pre>public void execute(java.lang.Runnable command)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code>execute</code> in interface <code>java.util.concurrent.Executor</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code>execute</code> in class <code>java.util.concurrent.ThreadPoolExecutor</code></dd>
</dl>
</li>
</ul>
<a name="newTaskFor(java.lang.Runnable,java.lang.Object)">
<!-- -->
</a><a name="newTaskFor(java.lang.Runnable, T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newTaskFor</h4>
<pre>protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(java.lang.Runnable runnable,
T result)</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>newTaskFor</code> in class <code>java.util.concurrent.AbstractExecutorService</code></dd>
</dl>
</li>
</ul>
<a name="newTaskFor(java.util.concurrent.Callable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newTaskFor</h4>
<pre>protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(java.util.concurrent.Callable<T> callable)</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>newTaskFor</code> in class <code>java.util.concurrent.AbstractExecutorService</code></dd>
</dl>
</li>
</ul>
<a name="afterExecute(java.lang.Runnable, java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterExecute</h4>
<pre>protected void afterExecute(java.lang.Runnable r,
java.lang.Throwable t)</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>afterExecute</code> in class <code>java.util.concurrent.ThreadPoolExecutor</code></dd>
</dl>
</li>
</ul>
<a name="maybeResetTraceSessionWrapper(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeResetTraceSessionWrapper</h4>
<pre>protected static void maybeResetTraceSessionWrapper(java.lang.Runnable r)</pre>
</li>
</ul>
<a name="beforeExecute(java.lang.Thread, java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beforeExecute</h4>
<pre>protected void beforeExecute(java.lang.Thread t,
java.lang.Runnable r)</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>beforeExecute</code> in class <code>java.util.concurrent.ThreadPoolExecutor</code></dd>
</dl>
</li>
</ul>
<a name="logExceptionsAfterExecute(java.lang.Runnable, java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logExceptionsAfterExecute</h4>
<pre>public static void logExceptionsAfterExecute(java.lang.Runnable r,
java.lang.Throwable t)</pre>
<div class="block">Send @param t and any exception wrapped by @param r to the default uncaught exception handler,
or log them if none such is set up</div>
</li>
</ul>
<a name="handleOrLog(java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleOrLog</h4>
<pre>public static void handleOrLog(java.lang.Throwable t)</pre>
<div class="block">Send @param t to the default uncaught exception handler, or log it if none such is set up</div>
</li>
</ul>
<a name="extractThrowable(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>extractThrowable</h4>
<pre>public static java.lang.Throwable extractThrowable(java.lang.Runnable runnable)</pre>
<dl><dt><span class="strong">Returns:</span></dt><dd>any exception wrapped by @param runnable, i.e., if it is a FutureTask</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DebuggableThreadPoolExecutor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.html" title="class in org.apache.cassandra.concurrent"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/cassandra/concurrent/IExecutorMBean.html" title="interface in org.apache.cassandra.concurrent"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.html" target="_top">Frames</a></li>
<li><a href="DebuggableThreadPoolExecutor.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li><a href="#nested_classes_inherited_from_class_java.util.concurrent.ThreadPoolExecutor">Nested</a> | </li>
<li><a href="#field_summary">Field</a> | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li><a href="#field_detail">Field</a> | </li>
<li><a href="#constructor_detail">Constr</a> | </li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright © 2014 The Apache Software Foundation</small></p>
</body>
</html>