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 `JOB's 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.

For more information about the project and example code see README file.

(Tarball comes with the latest .git source tree. Feel free to play with it. You may also prefer visiting Patron on GitHub.)