Calispel channels let one thread communicate with another, facilitating unidirectional communication of any Lisp object. Channels may be unbuffered, where a sender waits for a receiver (or vice versa) before either operation can continue, or channels may be buffered with flexible policy options.
Because sending and receiving on a channel may block, either operation can time out after a specified amount of time.
A syntax for alternation is provided (like
ALT in occam, or Unix
select()): given a sequence of operations, any or all of which may block, alternation selects the first operation that doesn't block and executes associated code. Alternation can also time out, executing an "otherwise" clause if no operation becomes available within a set amount of time.
Many CSP- and occam-style channel libraries offer features like parallel execution (i.e. occam
PAR). Calispel is a message-passing library, and as such leaves the role of threading abstractions and utilities left to be filled by perfectly good, complementary libraries such as Bordeaux-Threads and Eager-Future.
Calispel is a fork of Roger Peppe's csp.
This is tricky, it looks like this package is a gzip of a gzipped tar file. I had to gzip -d calispel-0.1.tar.gz; tar -xzf calispel-0.1.tar --Zach KS
I can wget the file from a remote host, run "zcat calispel-0.1.tar.gz | file -", and get "POSIX tar archive"; I can also extract with simply "tar -xzf". If anybody runs into the above problem, please get in touch with me and give me more details about the software you're downloading with. --J.P. Larocque