
On Oct 25, 2007, at 14:21 , Ryan Ingram wrote:
On 10/25/07, Brandon S. Allbery KF8NH
wrote: I think it might actually be safe in this case: if the file changes out from under your lazy I/O, far worse things happen in the gdbm library layer than in the unsafe-IO Haskell layer.
Right, but if you do something like
do keys <- getKeysLazy db [.. some computation A here that may or may not evaluate all the keys ..] addRow db newRow [.. some other computation B that uses the key list ..]
does B see the new row or not?
My point is that there's no promise for that one *even in C*. (The equivalent construct being adding the new row before nextKey has failed.) -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH