Drafted a branch "mdb/assert" in
and on Ada, based
roughly on Howard's original message to you. I didn't know about
that at first, which has caused some confusion.
So the callback usually receives an env after all, and a NULL
context since I don't know what Howard intended there.
Howard, do I push this? Feel free to grab it and tweak a bit:)
env can be NULL. mdb_env_set_assert(env,cb) also sets a static
variable with the callback for the asserts which do not know of an
env. Could throw away that part later. Currently it only applies
to one assert().
The branch also invalidates a transaction on any page allocation
error, since the callers do not always clean up afterwards. Too
aggressive, can be reverted after updating the callers. But for
now it means MDB_MAP_FULL & co won't let the user commit an