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.

Reply via email to