A task is an execution of a MOO program. There are three ways for tasks to be created in LambdaMOO:
fork()
statement in the programming language creates a task
whose execution is delayed for at least some given number of seconds;
these are forked tasks.
To prevent a maliciously- or incorrectly-written MOO program from running forever and monopolizing the server, limits are placed on the running time of every task. One limit is that no task is allowed to run longer than one minute; this limit is, in practice, never reached. The reason is that there is a second limit on the number of operations a task may execute. Every task has an associated clock that counts down ticks as the task executes. The server counts one tick for every expression evaluation (other than variables and literals) and one for every time through the body of a loop. If a task's clock winds all the way down to zero, the task is immediately and unceremoniously aborted. Command and server tasks are given brand-new clocks with an initial store of 20,000 ticks; this is enough for almost all normal uses. A forked task inherits the clock of the task that forked it, with however many ticks remain on it. To allow objects like cuckoo clocks and other recurring tasks that do a little bit of work every once in a while forever, clocks also regain ticks at the rate of 25 ticks per second, up to the maximum of 20,000 ticks. The seconds are counted from the end of the time that one task was counting down that clock to the time when the next user of that clock actually begins execution. Because forked tasks may exist for long periods of time before they begin execution, there are commands to list the ones that you own and to kill them before they execute. These commands are covered in the following section.
Queue ID:
Start Time:
Owner:
Clock:
Clock ID:
Verb:
Line:
Go to the first, previous, next, last section, table of contents.