From e6afc68caba26782afe9c85aba457b9429621ba7 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 27 Sep 2023 20:28:40 -0700 Subject: [PATCH] whats up with windows + questionable + generics --- datastore/threads/threadproxyds.nim | 30 +++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/datastore/threads/threadproxyds.nim b/datastore/threads/threadproxyds.nim index 8be8a8a..e85038c 100644 --- a/datastore/threads/threadproxyds.nim +++ b/datastore/threads/threadproxyds.nim @@ -141,8 +141,9 @@ proc hasTask[T, DB](ctx: TaskCtx[T], ds: DB, key: KeyId) {.gcsafe.} = method has*[BT](self: ThreadDatastore[BT], key: Key): Future[?!bool] {.async.} = await self.semaphore.acquire() - without signal =? acquireSignal(), err: - return failure err + let signal = acquireSignal().get() + # without signal =? acquireSignal(), err: + # return failure err let ctx = newTaskCtx(bool, signal=signal) dispatchTask(self, signal): @@ -160,8 +161,9 @@ method delete*[BT](self: ThreadDatastore[BT], key: Key): Future[?!void] {.async.} = ## delete key await self.semaphore.acquire() - without signal =? acquireSignal(), err: - return failure err + let signal = acquireSignal().get() + # without signal =? acquireSignal(), err: + # return failure err let ctx = newTaskCtx(void, signal=signal) dispatchTask(self, signal): @@ -191,8 +193,9 @@ method put*[BT](self: ThreadDatastore[BT], data: seq[byte]): Future[?!void] {.async.} = ## put key with data await self.semaphore.acquire() - without signal =? acquireSignal(), err: - return failure err + let signal = acquireSignal().get() + # without signal =? acquireSignal(), err: + # return failure err let ctx = newTaskCtx(void, signal=signal) dispatchTask(self, signal): @@ -224,8 +227,9 @@ method get*[BT](self: ThreadDatastore[BT], key: Key, ): Future[?!seq[byte]] {.async.} = await self.semaphore.acquire() - without signal =? acquireSignal(), err: - return failure err + let signal = acquireSignal().get() + # without signal =? acquireSignal(), err: + # return failure err let ctx = newTaskCtx(DataBuffer, signal=signal) dispatchTask(self, signal): @@ -287,10 +291,12 @@ method query*[BT](self: ThreadDatastore[BT], ## keeps one thread running queryTask until finished ## await self.semaphore.acquire() - without signal =? acquireSignal(), err: - return failure err - without nextSignal =? acquireSignal(), err: - return failure err + let signal = acquireSignal().get() + # without signal =? acquireSignal(), err: + # return failure err + let nextSignal = acquireSignal().get() + # without nextSignal =? acquireSignal(), err: + # return failure err let ctx = newTaskCtx(QResult, signal=signal, nextSignal=nextSignal) proc iterDispose() {.async.} =