On 2010-Oct-12, at 10:22, Damian Conway wrote:

> What we really need is some anecdotal evidence from folks who are actually
> using threading in real-world situations (in *any* languages). What has worked
> in practice? What has worked well? What was painful? What was error-prone?
> And for which kinds of tasks?
> 
> And we also need to stand back a little further and ask: is "threading"
> the right approach at all? Do threads work in *any* language? Are there
> better metaphors?


     'Channels are a good model of the external world' - Russ Cox
              Threads without Locks, slide 39

Perhaps the work on the 'channel' model done in Plan9 (and Inferno) will be 
helpful.
It has many years of experience in publicly available code, libraries, and 
discussion
archives, and verification tools.

Particularly the work of Russ Cox
   http://swtch.com/~rsc/

Particularly 
   Threads without Locks
   Bell Labs, Second International Plan 9 Workshop, December 2007
   http://swtch.com/~rsc/talks/threads07/

This talk has a nice crisp overview of the issues in different models
and mentions several real world applications

   concurrent prime sieve (by Mcllroy)
   file system indexer implementation
   publish and subscribe
   re-entrant IO multiplexing window systems
     http://swtch.com/~rsc/thread/cws.pdf                   <------ amazing 
stuff!
     http://video.google.com/videoplay?docid=810232012617965344
   the classic 'Squinting at Power Series' - and several others (see slide 31)
     http://swtch.com/~rsc/thread/squint.pdf
     (this could be an excellent test suite of any 'threading' implementation)

and extended in the work of PlanB  
     http://lsub.org/ls/planb.html
     http://lsub.org/index.html#demos



This model is available on many OSs in the port of Plan9 to user space
  http://swtch.com/plan9port/
and in C based libthread that builds multiple-reader, multiple-writer finite 
queues.
There is a lot to like and borrow from Plan9, including the 9P2000 protocol as 
a core organizing meme
  http://9p.cat-v.org/faq

The 'Spin' verification tool and it's history are *very* interesting also
  http://swtch.com/spin/


Note that many of the people doing 'go' were the ones that did Plan9 


Regards,
Todd Olson

PS   I'd really like to have their channel model available in Perl6
     Many things I'd like to model would work well with channels
     I have (unpublished) Perlish syntax to lay over channels

PPS  Russ has also done some nice work on regular expression engines
       http://swtch.com/~rsc/regexp/

Reply via email to