httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Stoddard" <stodd...@raleigh.ibm.com>
Subject Re: [rant] os/cannonical error
Date Thu, 21 Sep 2000 22:25:14 GMT
+1
----- Original Message ----- 
From: William A. Rowe, Jr. <wrowe@rowe-clan.net>
To: <new-httpd@apache.org>
Sent: Wednesday, September 20, 2000 2:40 PM
Subject: [rant] os/cannonical error


> The last post just reminded me...
> 
> MUST we be adding cpu cycles to flip OS errors to native ERRNO
> values in canonerr.c!?!  I'm looking forward to the day we have
> a 500 condition-long switch block.  -not-.
> 
> I've suggested a very long time ago... let's take the EAGAIN
> error just for kicks.  Why not a simple, compile-time macro to
> deal with this.  Unix:
> 
> #define APR_IS_EAGAIN(e) ((e) == APR_EAGAIN)
> 
> Gee.  No CPU cycles wasted.  Windows?
> 
> #define APR_IS_EAGAIN(e) (((e) == APR_EAGAIN) || (e) == WSAEWOULDBLOCK)
> 
> Ohhh... a whole extra few cycles.  Not an entire switch block full
> of them, however.
> 
> If we realize a new API specific error on any platform... just add it
> to the (now growing) list of equivilant errors.  Keep APR's list rather
> short and sweet, and track the dozens of 'equivilant' errors using
> the macro.  Very readable, I think...
> 
>     if (stat != APR_SUCCESS && 
>         !(APR_IS_EINPROGRESS(stat) ||
>             APR_IS_EAGAIN(stat))) {
>         apr_close_socket(sock);
>         fprintf(stderr, "Could not connect: %s (%d)\n", 
> apr_strerror(stat, msgbuf, sizeof(msgbuf)), stat);
> 
> I don't think this is all that ungodly... but a 500 error case statement
> will be, someday in the (near?) future.


Mime
View raw message