From: John Max Skaller (skaller_at_[hidden])
Date: 2001-06-22 17:03:00
> Other experts tell you that traditional threading systems are useless
> except as toys.
I'm not arguing: just reporting what someone told me.
This is not my area of expertise at all.
> CSP calculus is the latest in state of the art threading concepts.
What?? CSP is really old: Hoare, 1978!!
Milner developed CCS in 1980/1989, the pi-calculus
followed in 1991/2 (Milner, Parrow, Walker)
Join calculus is even more recent, and subsumes pi.
[The date on the JoCaml distribution is 2001, I guess the
papers are a bit older]
If you're interested, I suggest you download
and play with JoCaml (it also happens to support
a distributed garbage collector, a concept of locations,
and process mobility: mobile agents are practically builtin!)
To give you the flavour: you might think
that locking is a primitive thread concept. It isn't.
Here is a JoCaml definition of a simple lock:
# let def new_lock () =
# let def free! () | lock () = reply
# and unlock () = free () | reply in
# free () | reply lock, unlock
> > For the moment though, we can only wrap the poorly
> > designed concepts and API's that are actually made available,
> > providing some extra safety where possible, but otherwise
> > leaving it up to the programmer.
> We can do much more than this, and it is the ultimate goal.
I agree, but it will never happen in C++. (IMHO)
We'll be really lucky if the very concept of concurrent
execution finds its way into the abstract machine.
Anyhow: I think we agree that implementing a basic
conventional threads library is a good thing to do :-)
-- John (Max) Skaller, mailto:skaller_at_[hidden] 10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850 checkout Vyper http://Vyper.sourceforge.net download Interscript http://Interscript.sourceforge.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk