Problems
- If the generating function of a lazy sequence blocks (e.g. for I/O), it blocks all consuming threads
- Clojure functions cannot use time for control flow without blocking threads or Java interop
Proposed Solution
- Protocols for generators and consumers of asynchronous events
- Functions which mirror the Clojure sequence API for "push" events
References
Implementations
Labels: