Version française
Home     About     Download     Resources     Contact us    
Browse thread
Smart ways to implement worker threads
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Rich Neswold <rich.neswold@g...>
Subject: Re: [Caml-list] Smart ways to implement worker threads
On Wed, Jul 14, 2010 at 11:09 AM, Goswin von Brederlow <goswin-v-b@web.de>wrote:

> 4) Do some magic with Event.t?
>
> Problem: never used this and I could use a small example how to use
> this.
>

Event.t (and its associated library) *is* magical in that it provides an
absolutely beautiful concurrent programming model. Forget about select() and
mutexes and other ugly threading concepts. Event.t and friends is how it
should be done.

John H. Reppy's "Concurrent Programming in
ML<http://sharingcentre.net/87081-concurrent-programming-ml.html>"
provides a thorough understanding of how to use this module effectively.
This book presents the material in a very understandable
way: deficiencies in current threading models are discussed as well as how
CML solves the limitations and constraints. The book can be purchased or
downloaded free online.

The few applications I've written that use CML, I found it was more than
sufficient (speed-wise). Whether your application is more demanding, I can't
tell.

Hopefully someone on the list with more experience can comment whether there
are caveats (performance-related or others) in OCaml's support of CML. If
there are, there should be an effort in fixing the problems (I would help in
any way I could.) I'd also recommend incorporating Satoshi Ogasawara's
Concurrent
Cell <http://caml.inria.fr/cgi-bin/hump.en.cgi?contrib=654> project into the
standard library. (This project adds IVars and MVars and other constructs
described in John H. Reppy's book, but not available in the OCaml standard
library.)

Hope this helps!

-- 
Rich

Google Reader: https://www.google.com/reader/shared/rich.neswold
Jabber ID: rich@neswold.homeunix.net