Subject: | cached cursors not closed |
Cursors are opened and cached in the database object during the tie functions CLEAR and FIRSTKEY. There doesn't appear to be an API to manually close these. Neither does close_everything() or BerkeleyDB::Common::db_close close them. Another problem that I see is that when working with transactions, a deadlock can occur if the transaction boundaries overlap the cursor's open and close boundaries. I think a simple solution without terrible functionality loss might be to close all the cached cursors before beginning a transaction and again before committing or aborting.
Thanks again for a great module.
Mike