And already, I see that the first one should have been (defn test [] (async/go (println (async/<! (foo)))))
Boy I wish you could edit this post after the fact. On Monday, January 13, 2014 3:32:39 PM UTC-8, Stephen Cagle wrote: > > I just want to re-iterate that there are many (some are probably better) > ways to do this, but using what I suggested above it would be: > > (defn foo [] > (async/go "hi")) > > (defn test [] > (println (async/<! (foo)))) > > (defn test [] > (let [c (async/chan 10)] > (async/go > (async/>! c (async/<! (foo))) > (println (<! c))))) > > (test) > > I wrote the first (test) minimally as you aren't really doing anything > with your 10 slot buffer. However, in real code maybe you are, so I tried > to write the second (test) in the fashion that you wrote it. > > There is nothing really to what I am saying other than that, yes, the > core.async codewalker cannot see into code that you call into. Therefore, > if the code you call into also needs to do asynchronous things, you need to > wrap it in something like a go block as well. With the above solution you > might have 2 go machines "live" at the same time (the test and the foo go > machines). > > In short, you have a trade-off here. If you want to modularize your code > at the function (go machine) level, you are going to potentially have > multiple go machines "live" at the same time. > > I don't have an editor/compiler on this tablet, so apologies for any silly > errors. > -- -- 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.