I'm guilty of the X-Y problem.
I'm trying to, inside of CLJS, write a simple WebOS. So I want to simultaneously be able to run things like: * a notepad app * an IRC app * a webRTC video chat app I have built each of these individual pieces in CLJS, -- but combining them / having them work well together in a clean, non-spaghetti way is harder than I thought. ### The main problems here I have are: * multi-threading (run all three apps at once) and * have is inter-"process" (in this case app) communication I'd also prefer to do this in a way where I write each app as if it's the only app running (i.e. no callback hell.) One possible approach is to make each app a "go-thread", but then I run into the issue of: (go ... (>! ... ) (<! ... )) all forced into the same lexical function. I'm looking for alternatives to this. By using: settimeout(func, 0); I should be able to fire off 3 threads now, if I had something like promises, I can do inter-process communication I'm still working this through -- so if my thinking is sloppy / unclear, please point it out so I can make it clearer. Thanks! On Tue, Apr 8, 2014 at 2:05 PM, James Reeves <ja...@booleanknot.com> wrote: > What exactly are you trying to do? Could you describe the problem you're > trying to solve in more detail? > > - James > > > On 8 April 2014 22:02, t x <txrev...@gmail.com> wrote: >> >> I'd really like to avoid callbacks. :-) >> >> If cljs had promises, it would suffice. :-) >> >> On Tue, Apr 8, 2014 at 2:00 PM, Gary Trakhman <gary.trakh...@gmail.com> >> wrote: >> > I think you might be able to use put! with a callback, or (go (>! ..)) >> > within foo for a transient go process. Not sure if there's any ill >> > effects. >> > >> > >> > On Tue, Apr 8, 2014 at 4:51 PM, t x <txrev...@gmail.com> wrote: >> >> >> >> Hi, >> >> >> >> >> >> * I am aware of core.async. However, I don't like the fact that (go >> >> ... ) is a macro, thus forcing the >! and <! to appear "in the body", >> >> and I can't do nested things like: >> >> >> >> (defn foo [chan] >> >> (let [x (<! chan)] ... )) >> >> >> >> (go ... (foo ... )) >> >> >> >> >> >> * For the following, I only need it to work in ClojureScript. I >> >> don't need it to work in Clojure. Furthermore, we can assume browser = >> >> latest Firefox, or browser = latest Chrome. >> >> >> >> >> >> Now, my question: is there a library which provides "true" >> >> lightweight Clojurescript threads? >> >> >> >> >> >> Thanks! >> >> >> >> -- >> >> 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. >> > >> > >> > -- >> > 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. >> >> -- >> 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. > > > -- > 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. -- 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.