Patron is a multi-consumer/multi-producer thread pooling library written in Common Lisp with flexibility and performance in mind. You simply create a PATRON with a job queue of fixed size, specify a fixed number of WORKER threads and start submitting your JOBs into the work queue.

While Patron is written in portable Common Lisp in mind, because of some platform specific features (semaphores, missing threading features—THREAD-JOIN, WITHOUT-INTERRUPTS, etc.—in bordeaux-threads, WITH-TIMEOUT macro) used, it currently works on SBCL and CCL platforms. As a side note, Patron currently depends on bordeaux-threads library for common threading functionalities.


License: BSD 2-Clause