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