Package org.eclipse.jetty.util.thread
Interface Invocable
-
- All Known Subinterfaces:
Callback
- All Known Implementing Classes:
AsyncMiddleManServlet.ProxyReader
,AsyncMiddleManServlet.ProxyResponseListener
,AsyncProxyServlet.StreamReader
,BlockingWriteCallback.WriteBlocker
,Callback.Completable
,Callback.Completing
,Callback.Nested
,CompletableCallback
,CountingCallback
,DeferredContentProvider
,DisconnectCallback
,FrameFlusher
,FutureCallback
,FutureWriteCallback
,Generator.Result
,HTTP2Flusher
,HTTP2Flusher.Entry
,HTTP2Stream
,HttpContent
,HttpDestination
,HttpDestinationOverFCGI
,HttpDestinationOverHTTP
,HttpDestinationOverHTTP2
,HttpInput.Content
,HttpInput.EofContent
,HttpInput.SentinelContent
,InputStreamContentProvider
,IteratingCallback
,IteratingNestedCallback
,MultiplexHttpDestination
,MultiplexHttpDestinationOverFCGI
,OutputStreamContentProvider
,PoolingHttpDestination
,ProxyProtocolClientConnectionFactory.ProxyProtocolConnection
,ProxyServlet.ProxyInputStreamContentProvider
,SharedBlockingCallback.Blocker
public interface Invocable
A task (typically either a
Runnable
orCallable
that declares how it will behave when invoked:- blocking, the invocation will certainly block (e.g. performs blocking I/O)
- non-blocking, the invocation will certainly not block
- either, the invocation may block
Static methods and are provided that allow the current thread to be tagged with a
ThreadLocal
to indicate if it has a blocking invocation type.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Invocable.InvocationType
-
Field Summary
Fields Modifier and Type Field Description static java.lang.ThreadLocal<java.lang.Boolean>
__nonBlocking
-
Method Summary
All Methods Static Methods Instance Methods Default Methods Modifier and Type Method Description static Invocable.InvocationType
combine(Invocable.InvocationType it1, Invocable.InvocationType it2)
default Invocable.InvocationType
getInvocationType()
static Invocable.InvocationType
getInvocationType(java.lang.Object o)
Get the invocation type of an Object.static void
invokeNonBlocking(java.lang.Runnable task)
Invoke a task with the calling thread, tagged to indicate that it will not block.static boolean
isNonBlockingInvocation()
Test if the current thread has been tagged as non blocking
-
-
-
Method Detail
-
isNonBlockingInvocation
static boolean isNonBlockingInvocation()
Test if the current thread has been tagged as non blocking- Returns:
- True if the task the current thread is running has indicated that it will not block.
-
invokeNonBlocking
static void invokeNonBlocking(java.lang.Runnable task)
Invoke a task with the calling thread, tagged to indicate that it will not block.- Parameters:
task
- The task to invoke.
-
combine
static Invocable.InvocationType combine(Invocable.InvocationType it1, Invocable.InvocationType it2)
-
getInvocationType
static Invocable.InvocationType getInvocationType(java.lang.Object o)
Get the invocation type of an Object.- Parameters:
o
- The object to check the invocation type of.- Returns:
- If the object is an Invocable, it is coerced and the
getInvocationType()
used, otherwiseInvocable.InvocationType.BLOCKING
is returned.
-
getInvocationType
default Invocable.InvocationType getInvocationType()
- Returns:
- The InvocationType of this object
-
-