6.3.90.900
Job Queue
A multi-threaded job queue.
(require job-queue) | package: job-queue |
value
: (parameter/c (or/c false/c exact-nonnegative-integer?))
An identifier for the current worker, or #f outside a manager.
procedure
(job-queue? v) → boolean?
v : any/c
Returns true if v is a job queue.
procedure
(make-job-queue how-many-workers) → job-queue?
how-many-workers : exact-nonnegative-integer?
Starts a queue with how-many-workers threads servicing jobs.
procedure
(submit-job! jq job) → void
jq : job-queue? job : (-> any)
Runs job by one of jq’s workers. job is run in the same parameterization as the call to submit-job!. This call will never block.
procedure
(stop-job-queue! jq) → void
jq : job-queue?
Blocks until all of jq’s current jobs are finished and its workers are dead. Once stop-job-queue! has been called, jq will reject subsequent requests and submit-job! will block indefinitely.