[EMAIL PROTECTED] (Ketil Z. Malde) writes:
[EMAIL PROTECTED] (Ketil Z. Malde) writes:

>   Prelude> :r
>   phase `Literate pre-processor' failed (exitcode = 1)

> I've no idea what trigged this, perhaps running out of file handles? 

I forgot: GHC version 5.04.1.  It seems that this is definitely
trigged by running out of file handles, so apparently, I did have an
idea. 

====

The following code runs out of file handles, so I am seeking
enlightenment as to why.

> -- | add data from a file to the histogram
> addFile :: FiniteMap String Int -> String -> IO (FiniteMap String Int)
> addFile fm name = do
>                 x <- readFile name
>                 return (addHist fm x)
> 
> -- | add data from all files in a directory to the histogram
> addDir :: FiniteMap String Int -> String -> IO (FiniteMap String Int)
> addDir fm dir = do
>               dc <- getDirectoryContents dir
>               fs <- filterM doesFileExist (map ((dir++"/")++) dc)
>               foldM addFile fm fs

Running addDir on a directory with few hundred files trigs it.
Shouldn't all of each file's contents be consumed by each addFile, and
thus the handle be released? 

-kzm
-- 
If I haven't seen further, it is by standing in the footprints of giants
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to