JsEnginePool class
Bounded pool of JavascriptRuntime instances for multi-engine workloads.
Engines are created lazily up to maxSize. Call acquire / release, or use withEngine. Always dispose the pool when finished.
Default JsEnginePoolConfig.resetMode is EngineResetMode.none (warm reuse).
Use EngineResetMode.soft or EngineResetMode.hard (or resetOnRelease: true)
when tenants must not share globalThis / channels.
Constructors
- JsEnginePool({int maxSize = 4, JsEnginePoolConfig config = const JsEnginePoolConfig(), JavascriptRuntime factory()?})
Properties
- config → JsEnginePoolConfig
-
final
- disposeCount → int
-
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- idleCount → int
-
no setter
-
idleEngines
→ List<
JavascriptRuntime> -
Engines that can be inspected without taking part in pool scheduling.
Diagnostic callers must only read engine state, never evaluate on them.
no setter
- inUseCount → int
-
no setter
- maxSize → int
-
final
- resetCount → int
-
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- size → int
-
no setter
Methods
-
acquire(
{Duration? timeout}) → Future< JavascriptRuntime> -
Borrow an engine. Blocks (async) if all engines are in use until one is
released, unless
timeoutelapses. -
dispose(
) → void - Dispose all engines and fail any pending acquire waiters.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
release(
JavascriptRuntime engine) → void -
Return an engine to the pool. Do not use
engineafter this call. -
toString(
) → String -
A string representation of this object.
inherited
-
withEngine<
T> (FutureOr< T> fn(JavascriptRuntime runtime), {Duration? acquireTimeout}) → Future<T> -
Run
fnwith a borrowed engine, always releasing afterward.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited