@Alex:

  Noted.

  In practice, it's not much of a problem to me, since objects I'm sending
over the channel are of the form:
  {:tag :message
   :return-chan ...
   :data ... actual message }



On Tue, Jan 14, 2014 at 5:39 AM, Alex Miller <a...@puredanger.com> wrote:

> Two notes:
>
> 1)The provided core.async go-loop macro is a small enhancement for the (go
> (loop )) case.
> 2) Be careful using when using falsey tests like when or if - these will
> stop on nil but will also stop on false coming through the channel. Might
> be ok here, but it's something to be aware of.
>
> Alex
>
>
> On Monday, January 13, 2014 11:45:52 PM UTC-6, Mark Mandel wrote:
>
>> I found this macro I wrote really useful for exactly this type of thing:
>> https://github.com/markmandel/while-let
>>
>> As long as you are happy for your go loop to stop when nil comes through
>> (i.e. when it gets closed).
>>
>> (go (while-let [data (<! (channel))]
>>                (println data)))
>>
>>
>> Mark
>>
>>
>> On Tue, Jan 14, 2014 at 4:34 PM, t x <txre...@gmail.com> wrote:
>>
>>> Understood. Thanks for the clarification.
>>>
>>>
>>> On Mon, Jan 13, 2014 at 9:28 PM, Ben Mabey <b...@benmabey.com> wrote:
>>>
>>>> On Mon Jan 13 18:11:10 2014, t x wrote:
>>>>
>>>>> Consider the following code block:
>>>>>
>>>>>
>>>>> (defn make-stupid []
>>>>>   (go (loop []
>>>>>         (recur))))
>>>>>
>>>>> (def x (make-stupid))
>>>>>
>>>>> ;; ... is there a way to kill this infinite go-loop ?
>>>>>
>>>>
>>>> No, you can not kill the loop with the go channel that is bound to x.
>>>>  You need to return a stop, a.k.a. poison, channel that the go block checks
>>>> before recurring. Something like:
>>>>
>>>> (let [stop (chan)]
>>>>  (go
>>>>   (loop []
>>>>     (when (alt! stop false :default :keep-going)
>>>>       ...
>>>>       (recur))))
>>>>  stop)
>>>>
>>>> -Ben
>>>>
>>>>
>>>> --
>>>> --
>>>> 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
>>>>
>>>> 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
>>>>
>>>> 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.
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>  --
>>> --
>>> 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
>>>
>>> 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
>>>
>>> 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.
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> E: mark....@gmail.com
>>
>> T: http://www.twitter.com/neurotic
>> W: www.compoundtheory.com
>>
>> 2 Devs from Down Under Podcast
>> http://www.2ddu.com/
>>
>  --
> --
> 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/groups/opt_out.
>

-- 
-- 
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/groups/opt_out.

Reply via email to