Hmmm, I'm really not convinced by the answer I gave you ...

I hope someone else with better xp than me with core.async (not hard !)
will answer to you and correct me.

Le lundi 29 décembre 2014, Laurent PETIT <laurent.pe...@gmail.com> a écrit :

> 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
> <javascript:_e(%7B%7D,'cvml','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
>> <javascript:_e(%7B%7D,'cvml','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
>> <javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@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
>> <javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com');>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Laurent Petit
>


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