> From: Cliff Woolley [mailto:[EMAIL PROTECTED]
> Sent: Friday, February 28, 2003 4:41 PM

> On Fri, 28 Feb 2003, Sander Striker wrote:
> 
> > Can someone at home in the file buckets take a look at these:
> >
> > buckets/apr_buckets_file.c:93:        if (apr_mmap_create(&mm, a->fd, 
> > fileoffset, APR_MMAP_LIMIT,
> > buckets/apr_buckets_file.c:102:             (apr_mmap_create(&mm, a->fd, 
> > fileoffset, filelength,
> >
> > And see if 0 length files are handled correctly?
> 
> I suspect they're not, but I'll have to check.

I think they are.  There is no mmaping taking place when filelength < 
APR_MMAP_THRESHOLD,
which is at least 1:

/** @def APR_MMAP_THRESHOLD
 * Files have to be at least this big before they're mmap()d.  This is to deal
 * with systems where the expense of doing an mmap() and an munmap() outweighs
 * the benefit for small files.  It shouldn't be set lower than 1.
 */


> I suppose the best solution would be to go ahead and try to mmap the file; if 
> you get an
> error, see if it's einval and you passed mmap a zero length file.  if so,
> morph yourself to a zero-length immortal bucket.  that way we don't pay
> the cost of *three* error tests in the main-line case, only two.

I guess it won't be needed.

Sander

Reply via email to