[ASYNC-145] mix throws assertion error when many channels are added to a mix. Created: 08/Sep/15 Updated: 14/Feb/17
Found in core.async version 0.1.346.0-17112a-alpha
When a large number of channels is added to a mix simultaneously, this error is thrown:
java.lang.AssertionError: Assert failed: No more than 1024 pending puts are allowed on a single channel. Consider using a windowed buffer.
We can reproduce the issue with the following in a REPL:
user> (require '[clojure.core.async :as a])
This is a consequence of the use of an unbuffered channel in the mix implementation. Since the channel's function is just to update the mix's internal data structure, using a windowed buffered channel appears to clear up this issue. Patch 0001-Change-channel-to-sliding-buffer.patch contains the proposed solution.
|Comment by Angus Fletcher [ 08/Sep/15 2:32 PM ]|
Update patch to include cljs fix as well.