class CurrentThreadScheduler

Scheduler that synchronously executes code on the current thread

class CurrentThreadScheduler does Scheduler {}

CurrentThreadScheduler executes tasks on the current threads. This means that method cue blocks until the code has finished executing.

Type Graph

Type relations for CurrentThreadScheduler
perl6-type-graph CurrentThreadScheduler CurrentThreadScheduler Any Any CurrentThreadScheduler->Any Scheduler Scheduler CurrentThreadScheduler->Scheduler Mu Mu Any->Mu

Stand-alone image: vector

Routines supplied by role Scheduler

CurrentThreadScheduler does role Scheduler, which provides the following routines:

(Scheduler) method uncaught_handler

method uncaught_handler() is rw

RW-Accessor for the handler that is caught for uncaught exceptions from the code that is being scheduled and run.

(Scheduler) method cue

method cue(&codeInstant :$at:$in:$every:$times = 1:&catch --> Cancellation)

Schedules a callable (&code) for execution and returns an instantiated Cancellation object to cancel the scheduling of the code for execution (which is especially important if you specify the every = time> named parameter. The adverbs control when and how the code is run:

$at can be an Instant before which the code won't be run. Alternatively $in is the number of seconds (possibly fractional) to wait before running the code. If $at is in the past or $in is negative, the delay is treated as zero. Implementations may equate to zero very small values (e.g. lower than 0.001s) of $in or result of $at - now.

If $every is specified, it is interpreted as the number of seconds (possibly fractional) to wait before re-executing the code. Implementations may treat too-small values as lowest resolution they support, possibly warning in such situations; e.g. treating 0.0001 as 0.001.

$times tells the scheduler how many times to run the code.

&catch is called with the Exception as its sole argument if &code dies.

One should call the cancel method on the returned Cancellation object to cancel the (possibly repeated) cueing of the code.