Hi Nick,

I've added a src test that shows iteration through a hash from C (t/src/hash.t #10) and disabled capturing SIGHUP, as mentioned on #parrotsketch.

The other TODO [1] will take a bit of time. Currently the hash buckets are filled from right to left, which makes iteration not stable, when keys are added during iteration. Reversing the bucket fill direction will fix this, as extendending the hash bucket store will always happen towards right due to realloc(3).

Would be great if someone could have a look at src/hash.c and reverse the fill direction of the bash bucket store (hash->bu.bs) and also the iteration direction. A distinct pointer to the bucket store (instead the current union) probably simplifies this task.

Thanks,
leo

[1] Iterating through a hash should behave "reasonable" when keys are added (or even deleted) during iteration. It's not necessary that added keys are seen during iteration, but all keys, present before any changes, have to be visible during iteration.

Reply via email to