From fc5a6551dadd2c46ba81713d1e5b82879922a32d Mon Sep 17 00:00:00 2001 From: benbierens Date: Mon, 20 May 2024 09:15:02 +0200 Subject: [PATCH] links in dispose call to leveldb wrapper --- datastore.nimble | 2 +- datastore/leveldb/leveldbds.nim | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/datastore.nimble b/datastore.nimble index b0a61ff..7a8c340 100644 --- a/datastore.nimble +++ b/datastore.nimble @@ -11,7 +11,7 @@ requires "nim >= 1.2.0", "chronos#c41599a", # FIXME change to Chronos >= 4.0.0 once it's out "questionable >= 0.10.15 & < 0.11.0", "sqlite3_abi", - "leveldbstatic >= 0.1.2", + "leveldbstatic >= 0.1.3", "stew", "unittest2" diff --git a/datastore/leveldb/leveldbds.nim b/datastore/leveldb/leveldbds.nim index 0b528b8..3d49026 100644 --- a/datastore/leveldb/leveldbds.nim +++ b/datastore/leveldb/leveldbds.nim @@ -108,10 +108,18 @@ method query*( except Exception as e: return failure("Unknown exception in LevelDbDatastore.query -> next: " & $e.msg) - iter.next = next - iter.dispose = proc(): Future[?!void] {.async.} = + proc dispose(): Future[?!void] {.async.} = + try: + dbIter.dispose() + return success() + except LevelDbException as e: + return failure("LevelDbDatastore.query -> dispose exception: " & $e.msg) + except Exception as e: + return failure("Unknown exception in LevelDbDatastore.query -> dispose: " & $e.msg) return success() + iter.next = next + iter.dispose = dispose return success iter method modifyGet*(