<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Tue Mar 30 10:45:41 CDT 2021 -->
<title>Invocable (Eclipse Jetty API Doc - v10.0.2)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-03-30">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Invocable (Eclipse Jetty API Doc - v10.0.2)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":1,"i1":18,"i2":1,"i3":1,"i4":1};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Invocable.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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.util.thread</a></div>
<h2 title="Interface Invocable" class="title">Interface Invocable</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="../Callback.html" title="interface in org.eclipse.jetty.util">Callback</a></code>, <code><a href="../Callback.InvocableCallback.html" title="interface in org.eclipse.jetty.util">Callback.InvocableCallback</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../proxy/AsyncMiddleManServlet.ProxyReader.html" title="class in org.eclipse.jetty.proxy">AsyncMiddleManServlet.ProxyReader</a></code>, <code><a href="../../proxy/AsyncMiddleManServlet.ProxyResponseListener.html" title="class in org.eclipse.jetty.proxy">AsyncMiddleManServlet.ProxyResponseListener</a></code>, <code><a href="../../proxy/AsyncProxyServlet.StreamReader.html" title="class in org.eclipse.jetty.proxy">AsyncProxyServlet.StreamReader</a></code>, <code><a href="../Callback.Completable.html" title="class in org.eclipse.jetty.util">Callback.Completable</a></code>, <code><a href="../Callback.Completing.html" title="class in org.eclipse.jetty.util">Callback.Completing</a></code>, <code><a href="../Callback.Nested.html" title="class in org.eclipse.jetty.util">Callback.Nested</a></code>, <code><a href="../CountingCallback.html" title="class in org.eclipse.jetty.util">CountingCallback</a></code>, <code><a href="../../client/util/DeferredContentProvider.html" title="class in org.eclipse.jetty.client.util">DeferredContentProvider</a></code>, <code><a href="../../client/DuplexHttpDestination.html" title="class in org.eclipse.jetty.client">DuplexHttpDestination</a></code>, <code><a href="../../websocket/core/internal/FrameFlusher.html" title="class in org.eclipse.jetty.websocket.core.internal">FrameFlusher</a></code>, <code><a href="../FutureCallback.html" title="class in org.eclipse.jetty.util">FutureCallback</a></code>, <code><a href="../../fcgi/generator/Generator.Result.html" title="class in org.eclipse.jetty.fcgi.generator">Generator.Result</a></code>, <code><a href="../../http2/HTTP2Flusher.html" title="class in org.eclipse.jetty.http2">HTTP2Flusher</a></code>, <code><a href="../../http2/HTTP2Flusher.Entry.html" title="class in org.eclipse.jetty.http2">HTTP2Flusher.Entry</a></code>, <code><a href="../../http2/HTTP2Stream.html" title="class in org.eclipse.jetty.http2">HTTP2Stream</a></code>, <code><a href="../../client/HttpDestination.html" title="class in org.eclipse.jetty.client">HttpDestination</a></code>, <code><a href="../../server/HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></code>, <code><a href="../../server/HttpInput.EofContent.html" title="class in org.eclipse.jetty.server">HttpInput.EofContent</a></code>, <code><a href="../../server/HttpInput.ErrorContent.html" title="class in org.eclipse.jetty.server">HttpInput.ErrorContent</a></code>, <code><a href="../../server/HttpInput.SpecialContent.html" title="class in org.eclipse.jetty.server">HttpInput.SpecialContent</a></code>, <code><a href="../../server/HttpInput.WrappingContent.html" title="class in org.eclipse.jetty.server">HttpInput.WrappingContent</a></code>, <code><a href="../../client/util/InputStreamContentProvider.html" title="class in org.eclipse.jetty.client.util">InputStreamContentProvider</a></code>, <code><a href="../IteratingCallback.html" title="class in org.eclipse.jetty.util">IteratingCallback</a></code>, <code><a href="../IteratingNestedCallback.html" title="class in org.eclipse.jetty.util">IteratingNestedCallback</a></code>, <code><a href="../../client/MultiplexHttpDestination.html" title="class in org.eclipse.jetty.client">MultiplexHttpDestination</a></code>, <code><a href="../../client/util/OutputStreamContentProvider.html" title="class in org.eclipse.jetty.client.util">OutputStreamContentProvider</a></code>, <code><a href="../../client/ProxyProtocolClientConnectionFactory.ProxyProtocolConnection.html" title="class in org.eclipse.jetty.client">ProxyProtocolClientConnectionFactory.ProxyProtocolConnection</a></code>, <code><a href="../../client/internal/RequestContentAdapter.html" title="class in org.eclipse.jetty.client.internal">RequestContentAdapter</a></code>, <code><a href="../../websocket/javax/common/SendHandlerCallback.html" title="class in org.eclipse.jetty.websocket.javax.common">SendHandlerCallback</a></code>, <code><a href="../SharedBlockingCallback.Blocker.html" title="class in org.eclipse.jetty.util">SharedBlockingCallback.Blocker</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">Invocable</span></pre>
<div class="block"><p>A task (typically either a <code>Runnable</code> or <code>Callable</code>
 that declares how it will behave when invoked:</p>
 <ul>
 <li>blocking, the invocation will certainly block (e.g. performs blocking I/O)</li>
 <li>non-blocking, the invocation will certainly <strong>not</strong> block</li>
 <li>either, the invocation <em>may</em> block</li>
 </ul>

 <p>
 Static methods and are provided that allow the current thread to be tagged
 with a <code>ThreadLocal</code> to indicate if it has a blocking invocation type.
 </p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.ThreadLocal&lt;java.lang.Boolean&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#__nonBlocking">__nonBlocking</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#combine(org.eclipse.jetty.util.thread.Invocable.InvocationType,org.eclipse.jetty.util.thread.Invocable.InvocationType)">combine</a></span>&#8203;(<a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;it1,
       <a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;it2)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default <a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInvocationType()">getInvocationType</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInvocationType(java.lang.Object)">getInvocationType</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
<td class="colLast">
<div class="block">Get the invocation type of an Object.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invokeNonBlocking(java.lang.Runnable)">invokeNonBlocking</a></span>&#8203;(java.lang.Runnable&nbsp;task)</code></th>
<td class="colLast">
<div class="block">Invoke a task with the calling thread, tagged to indicate
 that it will not block.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNonBlockingInvocation()">isNonBlockingInvocation</a></span>()</code></th>
<td class="colLast">
<div class="block">Test if the current thread has been tagged as non blocking</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a id="__nonBlocking">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>__nonBlocking</h4>
<pre>static final&nbsp;java.lang.ThreadLocal&lt;java.lang.Boolean&gt; __nonBlocking</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="isNonBlockingInvocation()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNonBlockingInvocation</h4>
<pre class="methodSignature">static&nbsp;boolean&nbsp;isNonBlockingInvocation()</pre>
<div class="block">Test if the current thread has been tagged as non blocking</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the task the current thread is running has
 indicated that it will not block.</dd>
</dl>
</li>
</ul>
<a id="invokeNonBlocking(java.lang.Runnable)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeNonBlocking</h4>
<pre class="methodSignature">static&nbsp;void&nbsp;invokeNonBlocking&#8203;(java.lang.Runnable&nbsp;task)</pre>
<div class="block">Invoke a task with the calling thread, tagged to indicate
 that it will not block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>task</code> - The task to invoke.</dd>
</dl>
</li>
</ul>
<a id="combine(org.eclipse.jetty.util.thread.Invocable.InvocationType,org.eclipse.jetty.util.thread.Invocable.InvocationType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>combine</h4>
<pre class="methodSignature">static&nbsp;<a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;combine&#8203;(<a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;it1,
                                        <a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;it2)</pre>
</li>
</ul>
<a id="getInvocationType(java.lang.Object)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInvocationType</h4>
<pre class="methodSignature">static&nbsp;<a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;getInvocationType&#8203;(java.lang.Object&nbsp;o)</pre>
<div class="block">Get the invocation type of an Object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>o</code> - The object to check the invocation type of.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If the object is an Invocable, it is coerced and the <a href="#getInvocationType()"><code>getInvocationType()</code></a>
 used, otherwise <a href="Invocable.InvocationType.html#BLOCKING"><code>Invocable.InvocationType.BLOCKING</code></a> is returned.</dd>
</dl>
</li>
</ul>
<a id="getInvocationType()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getInvocationType</h4>
<pre class="methodSignature">default&nbsp;<a href="Invocable.InvocationType.html" title="enum in org.eclipse.jetty.util.thread">Invocable.InvocationType</a>&nbsp;getInvocationType()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The InvocationType of this object</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Invocable.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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
