current-worker
job-queue?
make-job-queue
submit-job!
stop-job-queue!
Version: 4.2.3.4

Job Queue

Jay McCarthy <jay@plt-scheme.org>

A multi-threaded job queue.

 (require (planet jaymccarthy/job-queue))

current-worker : (parameter/c (or/c false/c exact-nonnegative-integer?))

An identifier for the current worker, or #f outside a manager.

(job-queue? v)  boolean?
  v : any/c

Returns true if v is a job queue.

(make-job-queue how-many-workers)  job-queue?
  how-many-workers : exact-nonnegative-integer?

Starts a queue with how-many-workers threads servicing jobs.

(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.

(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.