On Oct 25, 2007, at 14:21 , Ryan Ingram wrote:

On 10/25/07, Brandon S. Allbery KF8NH <[EMAIL PROTECTED]> 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] [EMAIL PROTECTED]
system administrator [openafs,heimdal,too many hats] [EMAIL PROTECTED]
electrical and computer engineering, carnegie mellon university    KF8NH


_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to