setup query

This commit is contained in:
Jaremy Creechley 2023-09-26 13:51:36 -07:00
parent 8699cfe671
commit f8f0a727d7
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300

View File

@ -280,15 +280,24 @@ method query*(
trace "About to query"
if lock.locked:
return failure (ref DatastoreError)(msg: "Should always await query features")
await lock.acquire()
if iter.finished == true:
return failure (ref QueryEndedError)(msg: "Calling next on a finished query!")
iter.finished = childIter.finished
var
res = ThreadResult[QueryResponse]()
await lock.acquire()
dispatchTask[void](self, signal):
discard ctx.signal.fireSync()
let res = ctx.res
if res.isErr() and res.error()[0] == ErrorEnum.QueryEndedErr:
iter.finished = true
else:
if res.isErr():
return err(res.error())
else:
let qres = res.get()
return ok(res.get())
iter.next = next