From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id A98A4BBA7 for ; Tue, 7 Feb 2006 18:45:31 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k17HjVZX016206 for ; Tue, 7 Feb 2006 18:45:31 +0100 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA23045 for ; Tue, 7 Feb 2006 18:45:30 +0100 (MET) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k17HjQp5016201 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 7 Feb 2006 18:45:29 +0100 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1F6Wtu-0004Qd-Gt for caml-list@inria.fr; Tue, 07 Feb 2006 18:45:15 +0100 Received: from 0x535f962a.boanxx20.adsl-dhcp.tele.dk ([83.95.150.42]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 07 Feb 2006 18:45:14 +0100 Received: from spam by 0x535f962a.boanxx20.adsl-dhcp.tele.dk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 07 Feb 2006 18:45:14 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: caml-list@inria.fr From: Bardur Arantsson Subject: Re: async networking Date: Tue, 07 Feb 2006 18:44:54 +0100 Message-ID: References: <1139129530.15565.3.camel@localhost.localdomain> <1139160736.10812.3.camel@localhost.localdomain> <1139288125.19213.36.camel@rosella> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: 0x535f962a.boanxx20.adsl-dhcp.tele.dk User-Agent: Mail/News 1.5 (X11/20060112) In-Reply-To: <1139288125.19213.36.camel@rosella> Sender: news X-Miltered: at nez-perce with ID 43E8DCBB.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 43E8DCB6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; async:01 argg:01 cheers:01 sdu:01 wrote:01 wrote:01 invert:01 let:03 library:03 gui:04 frameworks:05 quite:06 rendering:08 john:08 i'm:08 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 skaller wrote: > On Mon, 2006-02-06 at 19:34 +0100, Bardur Arantsson wrote: > >> However, if you want very high-performance networking >> you'd be better off with something closer to the metal, i.e. something >> like a libevent wrapper > > Argg no. Libevent isn't a library, it doesn't control invert. > It is a monolithic framework. Therefore it is not very useful because > your code will no longer be composable. In particular, > there is no way to compose two such frameworks, for example > you cannot use it with an event driven GUI framework. > Note that I said 'high-performance'. Point #1: select() and anything based on it (I believe Equeue still is though I haven't looked at it for quite a while) is woefully inadequate for high performance I/O except in very specific circumstances. Point #2: It is not customary for UI applications to require particularly high-performance I/O, thus rendering the non-composability issue moot. I'm _not_ recommending libevent for general use, just if you want high performance with an easily switchable backend implementation. Cheers, -- Bardur Arantsson - Your Honor, let the record reflect that the Defense just grazed my Johnson. John, 'Ally McBeal'