[Haskell-cafe] two problems with Data.Binary and Data.ByteString

Tim Newsham newsham at lava.net
Tue Aug 12 20:34:44 EDT 2008

>>>   Log: savedState.bin: openFile: resource busy (file is locked)
>>> this does not occur if the program wasnt loaded.  My best guess here
>>> is that B.readFile isnt completing and closing the file for some
>>> reason.  Is there a good way to force this?
>> Lazy IO. So force the result to be evaluated, and then close the handle,
>> or use strict bytestring reading.
> There is no visible handle.  It's all hidden in readFile.
> I will try forcing the data.

I tried to force the data with:

     loadState db = do
         d <- decode <$> B.readFile stateFile
         let force = sum $ M.elems $ M.size `fmap` d
         force `seq` atomically $ writeTVar db d

and I get the same error when trying to writeFile after doing
a loadState.

>> -- Don

Tim Newsham

More information about the Haskell-Cafe mailing list