mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-08 08:33:10 +00:00
implementing query type
This commit is contained in:
parent
0a98da3563
commit
f478b91c56
@ -193,5 +193,14 @@ proc queryTask*(
|
||||
let qrb = res.toBuffer()
|
||||
ret.success(qrb)
|
||||
|
||||
except Exception:
|
||||
echo "failure"
|
||||
except Exception as exc:
|
||||
ret.failure(exc)
|
||||
|
||||
discard ret[].signal.fireSync()
|
||||
|
||||
proc query*(
|
||||
ret: TResult[QueryResponseBuffer],
|
||||
tds: ThreadDatastorePtr,
|
||||
qiter: QueryIterPtr,
|
||||
) =
|
||||
tds[].tp.spawn queryTask(ret, tds, qiter)
|
||||
|
||||
@ -139,10 +139,10 @@ method query*(
|
||||
iter[].it = it
|
||||
|
||||
while not iter[].it.finished:
|
||||
self.tds[].tp.spawn queryTask(ret, self.tds, iter)
|
||||
query(ret, self.tds, iter)
|
||||
await wait(ret[].signal)
|
||||
|
||||
# iter[].it = nil # ensure our sharedptr doesn't try and dealloc
|
||||
iter[].it = nil # ensure our sharedptr doesn't try and dealloc
|
||||
finally:
|
||||
ret[].signal.close()
|
||||
|
||||
@ -162,7 +162,7 @@ method close*(
|
||||
## this can block... how to handle? maybe just leak?
|
||||
self.tds[].tp.shutdown()
|
||||
|
||||
# self[].tds[].ds = nil # ensure our sharedptr doesn't try and dealloc
|
||||
self[].tds[].ds = nil # ensure our sharedptr doesn't try and dealloc
|
||||
|
||||
proc newThreadProxyDatastore*(
|
||||
ds: Datastore,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user