From f8f0a727d7b4f4749245a1365a61b75115e5c723 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Tue, 26 Sep 2023 13:51:36 -0700 Subject: [PATCH] setup query --- datastore/threads/threadproxyds.nim | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/datastore/threads/threadproxyds.nim b/datastore/threads/threadproxyds.nim index 67228c8..67ad9e6 100644 --- a/datastore/threads/threadproxyds.nim +++ b/datastore/threads/threadproxyds.nim @@ -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