CSP (``communicating sequential processes'') support for Lisp. This library makes it easy to organise thread communication in a modular and expressive way. The central primitive is the ``channel'', which acts both as a synchronisation and communication medium. Care has been taken to keep the interface as minimal as possible.

C.A.R. Hoare's book Communicating Sequential Processes (CSP) should be useful. Also, Russ Cox (the principal author of the C code this library is based upon) has a brief history of this approach to threading, which might be informative.

CSP is a translation by Roger Peppe of Plan 9's libthread/channel.c. There are at least two forks that add new features, such as different queue choices, timeouts, and ALT guard conditions: Calispel and ChanL.

The package is layered on top of Bordeaux-Threads for portability. It has had at least rudimentary testing under SBCL, Lispworks, openMCL, ECL and Allegro. Documentation and a couple of examples are included with the package.