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.

Reply via email to