[Haskell-cafe] A Sliding TChan?

Noon Silk noonslists at gmail.com
Thu Jan 28 22:17:46 UTC 2016

I think you should be able to do this with the `pipes` and
`pipes-concurrency` libraries, in particular have a look at:


On Fri, Jan 29, 2016 at 7:30 AM, Mark Fine <mark.fine at gmail.com> wrote:

> We're currently using a TMChan to broadcast from a single producer thread
> to many consumer threads. This works well! However, we're seeing issues
> with a fast producer and/or a slow consumer, with the channel growing
> unbounded. Fortunately, our producer-consumer communication is
> time-sensitive and tolerant of loss: we're ok with the producer always
> writing at the expense of dropping communication to a slow consumer.
> A TMBChan provides a bounded channel (but no means to dupe/broadcast)
> where a writer will block once the channel fills up. In our use case, we'd
> like to continue writing to the channel but dropping off the end of the
> channel. Clojure's core-async module has some related concepts, in
> particular the notion of a sliding buffer
> <https://clojure.github.io/core.async/#clojure.core.async/sliding-buffer>
> that drops the oldest elements once full. Has anyone encountered something
> similar in working with channels and/or have any solutions? Thanks!
> Mark
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

Noon Silk, ن


"Every morning when I wake up, I experience an exquisite joy — the joy
of being this signature."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160129/c0195c05/attachment.html>

More information about the Haskell-Cafe mailing list