On Wed, Feb 4, 2009 at 9:59 AM, Eric Kow <[email protected]> wrote:
> On Wed, Feb 04, 2009 at 09:41:40 -0800, Judah Jacobson wrote:
>> I ran into this yesterday, and tracked it down to a bug when mmaping
>> empty files.  I discussed this with Don Stewart over email and sent
>> him a fix (attached) against
>> http://code.haskell.org/~dons/code/bytestring-mmap/
>
> Interesting: I suppose this is what our internal version caught (by
> coindicence) with the l < mmap_limit test below?
>
>
> mmap :: FilePath -> IO (ForeignPtr Word8, Int)
> mmap f = do
>    h <- openBinaryFile f ReadMode
>    l <- fromIntegral `fmap` hFileSize h
>    -- Don't bother mmaping small files because each mmapped file takes up
>    -- at least one full VM block.
>    if l < mmap_limit
>       then do thefp <- BI.mallocByteString l
>               debugForeignPtr thefp $ "mmap short file "++f
>               withForeignPtr thefp $ \p-> hGetBuf h p l
>               hClose h
>               return (thefp, l)

Yeah, looks that way.
-Judah
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to