file: job.t package: muf status: tentative
The queueJob operator removes job from
whatever job-queues it is currently in, and then
inserts it into jobQueue. Moving a job into
some arbitrary jobQueue is one way to stop it from
running. (It may get woken by signals, however.)
Moving it into a "run" jobQueue (for example,
me$s.runQueue1) is a way to start it running
again.
(Note: Since there are actually multiple run-queues
for each user, and a job should always go in the queue
matching its priority, the queueJob operator
silently puts the job in the right jobQueue, even if
it is not the one specified.)
Stack: makeJobQueue --> q Stack: copyJob dup if --> j j q queueJob else pop 2000 sleepJob nil endJob fi Stack: j me$s.runQueue0 queueJob Stack:
Here, the copyJob line leaves job j in
suspended animation in jobQueue q, and the
next line releases it and lets it run to completion.
You can use the printJobs (pj) command
to observe jobstate.
Go to the first, previous, next, last section, table of contents.