
On 10/25/07, Brandon S. Allbery KF8NH
On Oct 25, 2007, at 14:21 , Ryan Ingram wrote:
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.)
Just so. Deletions, for example, may change the ordering of the internal hashtable (according to the gdbm manpage), making some keys unfindable by a series of nextKey calls. (If I were writing a serious module, and not just noodling around, I imagine I'd document this, and let the user decide whether strict evaluation was required.) Thanks again to all, Graham