Anyway, I was able to implement only one oof your suggested solutions. The tap/untsp one.
I was unable to implement a buffer of size 0. I have tried, this: (deftype NoBuffer [state] impl/UnblockingBuffer impl/Buffer (full? [this] false) (remove! [this]) (add!* [this itm]) clojure.lang.Counted (count [this] 0)) But it didn’t work at all!! Please help. Thanks. — Sent from Mailbox On Wed, Jan 7, 2015 at 10:22 AM, Jozef Wagner <jozef.wag...@gmail.com> wrote: > From my understanding of how core.async is implemented, if channel has a > buffer, every message goes through it, regardless of whether there are > takes waiting or not. This is due to transducers that are applied only on > buffer items. None messages would thus pass through with a 0 size dropping > buffer. > Jozef > On Wednesday, January 7, 2015 6:39:47 AM UTC+1, Yehonathan Sharvit wrote: >> >> What is the reason for the dropping buffer not supporting size 0? >> >> Why the most trivial option of "no buffering" is not supported out of the >> box by core.async? >> >> >> >> On Thu, Jan 1, 2015 at 11:31 AM, Jozef Wagner <jozef....@gmail.com >> <javascript:>> wrote: >> >>> Implement a custom buffer type, or use mult. With mult, use tap/untap to >>> control reading. Items sent to mult are dropped if there are no taps. >>> >>> Jozef >>> >>> On Mon, Dec 29, 2014 at 12:38 PM, Yehonathan Sharvit <vie...@gmail.com >>> <javascript:>> wrote: >>> >>>> Hello, >>>> >>>> >>>> I would like to create a channel that will drop messages if no consumer >>>> is currently reading from the channel. >>>> >>>> Something like a channel with a dropping-buffer of size 0. >>>> The problem is that the API doesn't allow to create a dropping-buffer of >>>> size 0. >>>> >>>> >>>> With the following code snippet, I would like the reader to read >>>> nothing. >>>> >>>> *(def c (create-unbuffered-chan)) * >>>> >>>> *(put! c :ok)* >>>> >>>> *(go (println (<! c))); should not print anything* >>>> >>>> >>>> >>>> Your help is appreciated. >>>> Thanks, >>>> Yehonathan. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@googlegroups.com >>>> <javascript:> >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+u...@googlegroups.com <javascript:> >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+u...@googlegroups.com <javascript:>. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@googlegroups.com >>> <javascript:> >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+u...@googlegroups.com <javascript:> >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Clojure" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/clojure/6rYA9Ik7Aws/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> clojure+u...@googlegroups.com <javascript:>. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to a topic in the Google > Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/6rYA9Ik7Aws/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.