From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id C0E51BBE1 for ; Wed, 11 Oct 2006 02:23:09 +0200 (CEST) Received: from smtp.syd.people.net.au (smtp.syd.people.net.au [218.214.225.98]) by concorde.inria.fr (8.13.6/8.13.6) with SMTP id k9B0N1ZS017030 for ; Wed, 11 Oct 2006 02:23:08 +0200 Received: (qmail 28923 invoked from network); 11 Oct 2006 00:23:03 -0000 Received: from unknown (HELO coltrane.mega-nerd.net) (218.214.64.136) by smtp.syd.people.net.au with SMTP; 11 Oct 2006 00:23:03 -0000 Received: from coltrane (coltrane [192.168.1.101]) by coltrane.mega-nerd.net (Postfix) with SMTP id CA69F7B66 for ; Wed, 11 Oct 2006 10:22:57 +1000 (EST) Date: Wed, 11 Oct 2006 10:22:57 +1000 From: Erik de Castro Lopo To: caml-list@inria.fr Subject: Re: [Caml-list] forking, threads and events Message-Id: <20061011102257.2b5888d2.mle+ocaml@mega-nerd.com> In-Reply-To: <1160490322.16459.110.camel@rosella.wigram> References: <20061010221607.7ecc5cba.mle+ocaml@mega-nerd.com> <1160490322.16459.110.camel@rosella.wigram> Organization: Erik Conspiracy Secret Labs X-Mailer: Sylpheed version 2.2.6 (GTK+ 2.8.18; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 452C3965.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 threads:01 synchronous:01 threads:01 ocaml:01 erlang:01 compiler:01 erlang:01 loyal:98 religion:98 saudi:98 2006:98 wrote:01 caml-list:01 msvc:01 skaller wrote: > The correct way to do this is one pthread per CPU (called a > worker thread) and use fibres (synchronous threads) within > those pthreads. Then you will need a thread for I/O. > > You really should use Felix. I'm pushing for Ocaml on this project. If that doesn't fit the bill there are others in the team pushing for Erlang. > If you don't need performance .. why did you mention using > multiple cores? One core will do. I'm trying to optimize performance of lots of small sub-processes which are likely to block on I/O. I'm therefore trying to start as many as possible simultaneously rather than run them one by one serially. > Felix runs on Win32 using any C++ compiler, including MSVC++ > and uses the native Win32 API. It's currently not only > the logical choice for high performance high level asynchronous > programming .. its also the ONLY choice I have been led to believe that Erlang also fits the bill. > unless you count C++ as 'high level' :) I call C++ a curse on programmers everywhere; the language that has enabled and encouraged more stupidity and bad software design than any other programming language ever. Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo +-----------------------------------------------------------+ "It is forbidden for a Muslim to be a loyal friend to someone who does not believe in God and His Prophet, or someone who fights the religion of Islam." -- Fifth grade text book from Saudi Arabia http://www.washingtonpost.com/wp-dyn/content/article/2006/05/19/AR2006051901769_pf.html