Class IteratingNestedCallback
This specialized callback is used when breaking up an asynchronous task into smaller asynchronous tasks. A typical pattern is that a successful callback is used to schedule the next sub task, but if that task completes quickly and uses the calling thread to callback the success notification, this can result in a growing stack depth.
To avoid this issue, this callback uses an AtomicBoolean to note if the success callback has been called during the processing of a sub task, and if so then the processing iterates rather than recurses.
This callback is passed to the asynchronous handling of each sub
task and a call the IteratingCallback.succeeded()
on this call back represents
completion of the subtask. Only once all the subtasks are completed is
the Callback.succeeded()
method called on the Callback
instance
passed the the IteratingNestedCallback(Callback)
constructor.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.util.IteratingCallback
IteratingCallback.Action
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.Callback
Callback.Completable, Callback.Completing, Callback.Nested
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable
Invocable.InvocationType, Invocable.ReadyTask, Invocable.Task
-
Field Summary
Fields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Invoked when the overall task has completed with a failure.protected void
Invoked when the overall task has completed successfully.toString()
Methods inherited from class org.eclipse.jetty.util.IteratingCallback
close, failed, isClosed, isFailed, isSucceeded, iterate, process, reset, succeeded
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.Callback
completeWith
-
Constructor Details
-
IteratingNestedCallback
-
-
Method Details
-
getInvocationType
- Returns:
- The InvocationType of this object
-
onCompleteSuccess
protected void onCompleteSuccess()Description copied from class:IteratingCallback
Invoked when the overall task has completed successfully.- Overrides:
onCompleteSuccess
in classIteratingCallback
- See Also:
-
onCompleteFailure
Description copied from class:IteratingCallback
Invoked when the overall task has completed with a failure.- Overrides:
onCompleteFailure
in classIteratingCallback
- Parameters:
x
- the throwable to indicate cause of failure- See Also:
-
toString
- Overrides:
toString
in classIteratingCallback
-