type

ActorPool

@Js
const class ActorPool : Obj

Controller for a group of actors which manages their execution using pooled thread resources.

See Actors

constructors

make

It-block constructor

fields

maxQueue

Max number of messages that may be queued by actors in this pool.

maxThreads

Max number of threads which are used by this pool for concurrent actor execution.

name

Name to use for the pool and associated threads.

methods

isDone

Return true if this pool has been stopped or killed and all its actors have completed processing.

isStopped

Return true if this pool has been stopped or killed.

join

Wait for this pool's actors to fully terminate or until the given timeout occurs.

kill

Perform an unorderly shutdown.

stop

Perform an orderly shutdown.

Slot Details

isDone

Bool isDone()

Return true if this pool has been stopped or killed and all its actors have completed processing. If this pool was stopped then true indicates that all pending messages in the queues before the stop have been fully processed. If this pool was killed, then this method returns true once all actors have exited their thread. See join to block until done.

isStopped

Bool isStopped()

Return true if this pool has been stopped or killed. Once a a pool is stopped, new messages may not be delivered to any of its actors. A stopped pool is not necessarily done until all its actors have finished processing. Also see isDone and join.

join

This join(Duration? timeout := null)

Wait for this pool's actors to fully terminate or until the given timeout occurs. A null timeout blocks forever. If this method times out, then TimeoutErr is thrown. Throw Err if the pool is not stopped. Return this.

kill

This kill()

Perform an unorderly shutdown. Any pending messages which have not started processing are cancelled. Actors which are currently processing a message will be interrupted. See stop to perform an orderly shutdown. If the pool has already been killed, then do nothing.

make

new make(|This|? f := null)

It-block constructor

maxQueue

const Int maxQueue := 100000000

Max number of messages that may be queued by actors in this pool. Once this limit is reached, any messages sent are immediately rejected and their future will raise QueueOverflowErr. This limit only applies to messages sent via send and sendWhenDone. No limit checking is applied to sendLater.

maxThreads

const Int maxThreads := 100

Max number of threads which are used by this pool for concurrent actor execution. This value must be at least one or greater.

name

const Str name := "ActorPool"

Name to use for the pool and associated threads.

stop

This stop()

Perform an orderly shutdown. Once stopped, no new messages may be sent to this pool's actors. However, any pending messages will be processed. Note that scheduled messages are not guaranteed to be processed, only those delivered with Actor.send.

Use join to wait for all actors to complete their message queue. To perform an immediate shutdown use kill. If the pool has already been stopped, then do nothing. Return this.