scala.concurrent.ExecutionContext.parasitic
WARNING: Only ever execute logic which will quickly return control to the caller.
This ExecutionContext
steals execution time from other threads by having its Runnable
s run on the Thread
which calls execute
and then yielding back control to the caller after *all* its Runnable
s have been executed. Nested invocations of execute
will be trampolined to prevent uncontrolled stack space growth.
When using parasitic
with abstractions such as Future
it will in many cases be non-deterministic as to which Thread
will be executing the logic, as it depends on when/if that Future
is completed.
Do *not* call any blocking code in the Runnable
s submitted to this ExecutionContext
as it will prevent progress by other enqueued Runnable
s and the calling Thread
.
Symptoms of misuse of this ExecutionContext
include, but are not limited to, deadlocks and severe performance problems.
Any NonFatal
or InterruptedException
s will be reported to the defaultReporter
.
Runs a block of code on this execution context.
Runs a block of code on this execution context.
Value parametersthe task to execute
Reports that an asynchronous computation failed.
Reports that an asynchronous computation failed. See ExecutionContext.reportFailure(throwable: Throwable)
MUST throw a NullPointerException when runnable
is null When implementing a sync BatchingExecutor, it is RECOMMENDED to implement this method as runnable.run()
MUST throw a NullPointerException when runnable
is null When implementing a sync BatchingExecutor, it is RECOMMENDED to implement this method as runnable.run()
BatchingExecutor
WARNING: Never use both submitAsyncBatched
and submitSyncBatched
in the same implementation of BatchingExecutor
WARNING: Never use both submitAsyncBatched
and submitSyncBatched
in the same implementation of BatchingExecutor
WARNING: Never use both submitAsyncBatched
and submitSyncBatched
in the same implementation of BatchingExecutor
WARNING: Never use both submitAsyncBatched
and submitSyncBatched
in the same implementation of BatchingExecutor
Prepares for the execution of a task.
Prepares for the execution of a task. Returns the prepared execution context. The recommended implementation of prepare
is to return this
.
This method should no longer be overridden or called. It was originally expected that prepare
would be called by all libraries that consume ExecutionContexts, in order to capture thread local context. However, this usage has proven difficult to implement in practice and instead it is now better to avoid using prepare
entirely.
Instead, if an ExecutionContext
needs to capture thread local context, it should capture that context when it is constructed, so that it doesn't need any additional preparation later.
[Since version 2.12.0]
preparation of ExecutionContexts will be removed
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4