diff --git a/datastore/threads/threadproxyds.nim b/datastore/threads/threadproxyds.nim index fd6f09f..d0655d7 100644 --- a/datastore/threads/threadproxyds.nim +++ b/datastore/threads/threadproxyds.nim @@ -337,6 +337,11 @@ method query*( echo "query:next:iter:finished" return failure (ref QueryEndedError)(msg: "Calling next on a finished query!") + if not ctx[].running: + echo "query:next:iter:finished " + iter.finished = true + return + echo "query:next:acquire:lock" await lock.acquire() @@ -347,10 +352,6 @@ method query*( echo "query:next:iter:res: ", ctx[].res, "\n" - if not ctx[].running: - echo "query:next:iter:finished " - iter.finished = true - if ctx[].res.isErr(): return err(ctx[].res.error()) else: diff --git a/tests/datastore/querycommontests.nim b/tests/datastore/querycommontests.nim index 63d18c1..8d4324a 100644 --- a/tests/datastore/querycommontests.nim +++ b/tests/datastore/querycommontests.nim @@ -37,18 +37,13 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} = let iter = (await ds.query(q)).tryGet res = block: - var - res: seq[QueryResponse] - cnt = 0 - + var res: seq[QueryResponse] for pair in iter: let (key, val) = (await pair).tryGet + echo "test:query:result: ", $key if key.isNone: break - res.add((key, val)) - cnt.inc - res check: