Return-Path: Delivered-To: apmail-apr-dev-archive@www.apache.org Received: (qmail 64811 invoked from network); 2 Jul 2006 22:00:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 2 Jul 2006 22:00:19 -0000 Received: (qmail 92386 invoked by uid 500); 2 Jul 2006 22:00:18 -0000 Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 92060 invoked by uid 500); 2 Jul 2006 22:00:17 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Id: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 92049 invoked by uid 99); 2 Jul 2006 22:00:17 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Jul 2006 15:00:17 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [194.217.242.92] (HELO anchor-post-34.mail.demon.net) (194.217.242.92) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Jul 2006 15:00:15 -0700 Received: from wgold.demon.co.uk ([158.152.96.124] helo=thor) by anchor-post-34.mail.demon.net with esmtp (Exim 4.42) id 1Fx9yq-000FU5-Fz; Sun, 02 Jul 2006 21:59:53 +0000 Received: from 127.0.0.1 by thor ([127.0.0.1] running VPOP3) with SMTP; Sat, 1 Jul 2006 09:10:50 +0100 From: "James Mansion" To: "Greg Stein" Cc: Subject: RE: io abstractions Date: Sat, 1 Jul 2006 09:10:47 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 In-Reply-To: <6cca3db30606270312vf38e848vfd784fa802a70d38@mail.gmail.com> Importance: Normal X-Server: VPOP3 V1.5.0k - Registered X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N >have synchronous APIs. Period. Yes, it would also be nice to have >async, but that is orthogonal to the problem at hand. Really? What's all the APR_SO_NONBLOCK and apr_poll stuff for then? APR_DECLARE(apr_status_t) apr_socket_send(apr_socket_t *sock, const char *buf, apr_size_t *len); ... * This functions acts like a blocking write by default. To change * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK * socket option. * The number of bytes actually sent is stored in argument 3. That does not seem to me to jive with 'synchronous APIS. Period.' File IO might be synchronous., but then this is effectively an admission that the 'unification' leaves a lot to be desired even on platforms where a file descriptor 'looks like' a network or pipe descriptor and can be included in select(), because the behaviour is not the same. To be sure, using select with files is not so useful, but surely we've moved on in scalable server design from that. I have to say I fundamentally disagree with all these decorated names anyway - why can't these objects essentially just have a vtable pointer and indirect through that for operations? The 'performance impact' will not be measurable next to the kernel entry and IO operation. But then I think that select/poll is the wrong abstraction anyway, so what do I know. ;-) James