Hello,

I'm still a newbie with core.async myself, but I'll try to answer anyway,
learning on the way ;-)
My idea is that you could leverage alts! which can return a default value
immediately if none of the operations is "ready". I think "ready" means
"would not wait/park" (there's either a value to be read in an input
channel, or room in a channel buffer of an output channel).

So it's not really a channel that will have the feature, but rather a
process. I guess it is easy to encapsulate the desired behaviour by hiding
the process behind a function taking the desired output channel, and
returning a channel exhibiting the encaspulated behavior:

(defn put-or-drop-channel [target-channel]
  (let [input-channel (chan)]
    (go-loop
      (when-let [v (<! input-channel)]
        (alt! [target-channel v] nil :default nil))))

?



2014-12-29 12:38 GMT+01:00 Yehonathan Sharvit <vie...@gmail.com>:

> 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 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.
>



-- 
Laurent Petit

-- 
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.

Reply via email to