mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-07 16:13:07 +00:00
setup query
This commit is contained in:
parent
8699cfe671
commit
f8f0a727d7
@ -280,15 +280,24 @@ method query*(
|
|||||||
trace "About to query"
|
trace "About to query"
|
||||||
if lock.locked:
|
if lock.locked:
|
||||||
return failure (ref DatastoreError)(msg: "Should always await query features")
|
return failure (ref DatastoreError)(msg: "Should always await query features")
|
||||||
|
|
||||||
await lock.acquire()
|
|
||||||
|
|
||||||
if iter.finished == true:
|
if iter.finished == true:
|
||||||
return failure (ref QueryEndedError)(msg: "Calling next on a finished query!")
|
return failure (ref QueryEndedError)(msg: "Calling next on a finished query!")
|
||||||
|
|
||||||
iter.finished = childIter.finished
|
await lock.acquire()
|
||||||
var
|
|
||||||
res = ThreadResult[QueryResponse]()
|
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
|
iter.next = next
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user