cl-flow
Asynchronous non-blocking concurrency in Common Lisp, similar to what green threads are for.

Usage examples:

The run-flow form returns immediately; string is printed later:

(run-flow (flow:atomically :default () (sleep 1) (print "Hello, flowing World!" *output*)))

Execute serially (i.e., consecutively) and pass an argument from a previous block:

(run-flow (flow:serially (flow:atomically :default () "Hello, flowing World!") (flow:atomically :default (argument) (print argument *output*))))

More details at the project's Getting Started page.

Homepage: GitHub.io

Repository: GitHub

License: MIT

See Also: green-threads

Topics: concurrency, dataflow