httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: cvs commit: apache-2.0/src/main iol_socket.c
Date Thu, 06 Jul 2000 21:41:36 GMT

> > Windows NT and 2000 support sendfile, so they will return APR_SUCESS, and
> > actually write the data.  Windows 95/98 don't, so they will return
> > APR_ENOTIMPL.  Their performance will not be quite as good, but it won't
> > be that bad, because they won't actually DO anything.
> Actually, on run-time-tested platforms, if APR detects that sendfile isn't
> available at runtime, it can easily simulate it.
> That doesn't negate the basic theory: return APR_ENOTIMPL in some runtime
> cases for some functions. But at least for sendfile, we can always make it
> work on Win32 -- it will just work better on NT and 2000.
> (arguably, you could torch APR_HAS_SENDFILE and just pretend that it always
>  exists... I'm not sure where that would fall down)

It falls down, because APR made the decision (based on a group
consensus) that APR fails at link time not run-time.  We keep having this
discussion.  When I first wrote APR, all platforms implemented ALL
functions, and we just got APR_ENOTIMPL if a functions wasn't actually
implemented.  People argued for three weeks over this, and it was decided
to have APR use feature macros and fail at link time a function wasn't
implemented.  If a platform doesn't support this (Windows), then that
platform usese the APR_ENOTIMPL status code.

I would prefer to not have this discussion for the third time right
now.  We have gone over this stuff over and over and over again.  Feature
macros have been decided upon and implemented.  The only platform that
this doesn't work for is Windows, and we have a solution for Windows.


Ryan Bloom               
406 29th St.
San Francisco, CA 94131

View raw message