closing file handles
Hal Daume
hdaume@ISI.EDU
Sun, 09 Sep 2001 12:23:43 -0700
I'm sorry, I had a small error in my code. It should have been:
>go filelist = mapM go' filelist -- no "do return"
> where go' f = do h <- openFile f ReadMode
> text <- hGetContents h
> let c = head $! text
> return (c `seq` (hClose h `seq` c))
- Hal
Hal Daume wrote:
>
> I'm working with data spanning a lot of separate files and am having
> difficulty getting ghc to close the files. I've reduced my code to the
> following bit of code which should show my problem:
>
> >go filelist = do return (mapM go' filelist)
> > where go' f = do h <- openFile f ReadMode
> > text <- hGetContents h
> > let c = head $! text
> > return (c `seq` (hClose h `seq` c))
>
> basically, you give "go" a list of files and it'll give you the first
> character from each of these.
>
> if i run this with 30-40 files, it's okay. but when i run it with a
> list of 400 files, i get:
>
> *** Exception: resource exhausted
> Action: openFile
> Reason: process file table full
> File:
> /nfs/isd/marcu/RST-CORPUS-LDC/RSTtrees-WSJ-main-1.0/DATA/wsj_1355.out.dis
>
> which doesn't make sense to me, since it should be (as far as i can
> tell) closing each of the handles (the yucky "c `seq` (hClose h `seq`
> c)" is my way of making sure that it reads the first character before it
> closes the file and then makes sure to close the file before returning
> the character -- if there is a better way, please let me know).
>
> if anyone can tell me what my problem is, that would be great!
>
> also, along the same lines, are there any good papers on using haskell
> with large amounts of data? i frequently have problems like this and if
> there were a unified theory behind dealing with them, it would be
> great. any pointers would be helpful.
>
> thanks!
>
> --
> Hal Daume III
>
> "Computer science is no more about computers | hdaume@isi.edu
> than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume
>
> _______________________________________________
> Haskell mailing list
> Haskell@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell
--
Hal Daume III
"Computer science is no more about computers | hdaume@isi.edu
than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume