[e-lang] Seeking event loop concurrent solution to challenge problem

Karp, Alan H alan.karp at hp.com
Thu Sep 24 11:55:37 EDT 2009


ihab wrote:
> 
> A lot of us are fans of shared-nothing event loop concurrency, so we
> thought about using HTML5's "workers" as our starting point. However,
> it seems that using these requires a bunch of boilerplate, some of
> which may be automated, and some of which may not. I'd love to see
> someone code the solution in E, say, and we could backtrack from
> there.
>
Tyler has some JavaScript examples at http://waterken.sourceforge.net/#tour, such as the Bang Tutorial.

________________________
Alan Karp
Principal Scientist
Virus Safe Computing Initiative
Hewlett-Packard Laboratories
1501 Page Mill Road
Palo Alto, CA 94304
(650) 857-3967, fax (650) 857-7029
http://www.hpl.hp.com/personal/Alan_Karp


> -----Original Message-----
> From: e-lang-bounces at mail.eros-os.org [mailto:e-lang-bounces at mail.eros-
> os.org] On Behalf Of ihab.awad at gmail.com
> Sent: Wednesday, September 23, 2009 9:27 PM
> To: Discussion of E and other capability languages
> Cc: Kris Zyp
> Subject: [e-lang] Seeking event loop concurrent solution to challenge
> problem
> 
> Hi folks,
> 
> The CommonJS group seeks to build a "common" (i.e., not just Web
> pages) platform of JavaScript. In this thread, we asked ourselves what
> to do about concurrency:
> 
> http://groups.google.com/group/commonjs/browse_thread/thread/fa20fc6a36
> 49b3a
> 
> A lot of us are fans of shared-nothing event loop concurrency, so we
> thought about using HTML5's "workers" as our starting point. However,
> it seems that using these requires a bunch of boilerplate, some of
> which may be automated, and some of which may not. I'd love to see
> someone code the solution in E, say, and we could backtrack from
> there.
> 
> Problem: A multi threaded Web server that serves up a hit count for a
> single page.
> 
> Kris Zyp's shared memory solution, from the email thread, is:
> 
> var hits = 0;
> var lock = new (require("concurrency")).Lock(); // This just loads a
> module
> function incrementAndGetHits(){
>    lock.lock();
>    hits++;
>    lock.unlock();
>    return hits;
> }
> exports.app = function(env) { // Exported function that worker threads
> run
>    return {
>        status:200,
>        headers:{"content-type":"text/plain"},
>        body: "This page has been hit " + incrementAndGetHits() + "
> times";
>    };
> }
> 
> Given that E was essentially built for shared-nothing event loop
> concurrency, what does it look like in E?
> 
> Ihab
> 
> --
> Ihab A.B. Awad, Palo Alto, CA
> _______________________________________________
> e-lang mailing list
> e-lang at mail.eros-os.org
> http://www.eros-os.org/mailman/listinfo/e-lang


More information about the e-lang mailing list