Promises and agents are both fairly straightforward. It's STM and atoms that wouldn't be. But delivering things to blocking channel-gets could be used as a latch to control access to critical sections, so you could probably implement ordinary locks on top of core.async, and locks can then be used to build STM and atoms. So it seems likely it can be done.
Whether it's *worth* doing, to implement the other Clojure concurrency structures on top of Go, is another question, and one I'm not qualified to answer. :) On Tue, Jul 2, 2013 at 3:19 PM, Jim - FooBar(); <jimpil1...@gmail.com>wrote: > also what you're asking doesn't really make sense....how would you > implement synchronisation primitives (stm atoms promises) on top of > asynchronous infrastructure? > agents are asynchronous but I haven't got a clue about the potential > benefits (or not) of implementing them on top of core.async. > > Jim > > > > On 02/07/13 20:14, Jim - FooBar(); wrote: > >> I've not looked at core.async yet but I'd expect it to build on top of >> the built-in concurrency primitives and not the other way around... >> >> Jim >> >> >> On 02/07/13 20:12, Robert wrote: >> >>> Are all Clojure concurrency primitives efficiently implementable on top >>> of core.async? >>> >>> If so, could this be used to port Clojure from the JVM/CLR/JS to Go? >>> -- >>> -- >>> 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+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com> >>> For more options, visit this group at >>> http://groups.google.com/**group/clojure?hl=en<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+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com> >>> . >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<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+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/**group/clojure?hl=en<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+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com> > . > For more options, visit > https://groups.google.com/**groups/opt_out<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.