Simon Marlow wrote:
Really hClose shouldn't complain about a finalized handle, I'll see if
I can fix that.

That sounds like a work-around to me, not a fix, because it would not
fix more complicated exception handlers.

I don't think there's a problem with more complicated exception handlers. The fix is to make the finalized Handle look like a closed Handle; it's a fix to the finalizer, not the exception handler, so it's not a workaround for this one particular symptom.

Given the documentation of bracket, I would expect the following to write to the file.

  main = bracket
    (openFile "output" WriteMode)
    (\handle -> do
      hPutStr handle "I want this to be written in any case"
      hClose handle)
    blackhole

  blackhole = blackhole

But currently, hPutStr complains about a finalized handle, and with your fix, it would complain about a closed handle, which is hardly better.

  Tillmann
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to