setup query end

This commit is contained in:
Jaremy Creechley 2023-09-26 15:40:28 -07:00
parent eec66c9238
commit 911de83537
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300

View File

@ -277,6 +277,7 @@ method query*(
iter = QueryIter.new()
proc next(): Future[?!QueryResponse] {.async.} =
let ctx = ctx
defer:
if lock.locked:
lock.release()
@ -289,10 +290,9 @@ method query*(
await lock.acquire()
dispatchTask[DbQueryResponse[KeyId, DataBuffer]](self, signal):
self.tp.spawn queryTask(ctx, ds, dq)
discard ctx[].signal.fireSync()
await ctx[].signal.wait()
dispatchTaskWrap[DbQueryResponse[KeyId, DataBuffer]](self, signal):
# trigger query task to iterate then wait for new result!
discard ctx[].signal.fireSync()
if ctx[].res.isErr() and ctx[].res.error()[0] == ErrorEnum.QueryEndedErr:
iter.finished = true