<div dir="ltr">I think you should be able to do this with the `pipes` and `pipes-concurrency` libraries, in particular have a look at: <a href="http://haddock.stackage.org/lts-5.0/pipes-concurrency-2.0.5/Pipes-Concurrent.html#v:newest">http://haddock.stackage.org/lts-5.0/pipes-concurrency-2.0.5/Pipes-Concurrent.html#v:newest</a><div><br></div><div>--</div><div>Noon</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 29, 2016 at 7:30 AM, Mark Fine <span dir="ltr"><<a href="mailto:mark.fine@gmail.com" target="_blank">mark.fine@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>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.</div><div><br></div><div><div>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 <a href="https://clojure.github.io/core.async/#clojure.core.async/sliding-buffer" target="_blank">sliding buffer</a> that drops the oldest elements once full. Has anyone encountered something similar in working with channels and/or have any solutions? Thanks!</div></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Mark</div></font></span></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Noon Silk, ن<br><br><a href="https://silky.github.io/" target="_blank">https://silky.github.io/</a><br><div><br>"Every morning when I wake up, I experience an exquisite joy — the joy<br>of being this signature."<br></div></div></div></div></div>
</div>