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 InvocableA task (typically either a
RunnableorCallablethat 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
ThreadLocalto indicate if it has a blocking invocation type.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classInvocable.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.InvocationTypecombine(Invocable.InvocationType it1, Invocable.InvocationType it2)default Invocable.InvocationTypegetInvocationType()static Invocable.InvocationTypegetInvocationType(java.lang.Object o)Get the invocation type of an Object.static voidinvokeNonBlocking(java.lang.Runnable task)Invoke a task with the calling thread, tagged to indicate that it will not block.static booleanisNonBlockingInvocation()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.BLOCKINGis returned.
-
getInvocationType
default Invocable.InvocationType getInvocationType()
- Returns:
- The InvocationType of this object
-
-