whats up with windows + questionable + generics

This commit is contained in:
Jaremy Creechley 2023-09-27 20:28:40 -07:00
parent 4b804d1c9f
commit e6afc68cab
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300

View File

@ -141,8 +141,9 @@ proc hasTask[T, DB](ctx: TaskCtx[T], ds: DB, key: KeyId) {.gcsafe.} =
method has*[BT](self: ThreadDatastore[BT], method has*[BT](self: ThreadDatastore[BT],
key: Key): Future[?!bool] {.async.} = key: Key): Future[?!bool] {.async.} =
await self.semaphore.acquire() await self.semaphore.acquire()
without signal =? acquireSignal(), err: let signal = acquireSignal().get()
return failure err # without signal =? acquireSignal(), err:
# return failure err
let ctx = newTaskCtx(bool, signal=signal) let ctx = newTaskCtx(bool, signal=signal)
dispatchTask(self, signal): dispatchTask(self, signal):
@ -160,8 +161,9 @@ method delete*[BT](self: ThreadDatastore[BT],
key: Key): Future[?!void] {.async.} = key: Key): Future[?!void] {.async.} =
## delete key ## delete key
await self.semaphore.acquire() await self.semaphore.acquire()
without signal =? acquireSignal(), err: let signal = acquireSignal().get()
return failure err # without signal =? acquireSignal(), err:
# return failure err
let ctx = newTaskCtx(void, signal=signal) let ctx = newTaskCtx(void, signal=signal)
dispatchTask(self, signal): dispatchTask(self, signal):
@ -191,8 +193,9 @@ method put*[BT](self: ThreadDatastore[BT],
data: seq[byte]): Future[?!void] {.async.} = data: seq[byte]): Future[?!void] {.async.} =
## put key with data ## put key with data
await self.semaphore.acquire() await self.semaphore.acquire()
without signal =? acquireSignal(), err: let signal = acquireSignal().get()
return failure err # without signal =? acquireSignal(), err:
# return failure err
let ctx = newTaskCtx(void, signal=signal) let ctx = newTaskCtx(void, signal=signal)
dispatchTask(self, signal): dispatchTask(self, signal):
@ -224,8 +227,9 @@ method get*[BT](self: ThreadDatastore[BT],
key: Key, key: Key,
): Future[?!seq[byte]] {.async.} = ): Future[?!seq[byte]] {.async.} =
await self.semaphore.acquire() await self.semaphore.acquire()
without signal =? acquireSignal(), err: let signal = acquireSignal().get()
return failure err # without signal =? acquireSignal(), err:
# return failure err
let ctx = newTaskCtx(DataBuffer, signal=signal) let ctx = newTaskCtx(DataBuffer, signal=signal)
dispatchTask(self, signal): dispatchTask(self, signal):
@ -287,10 +291,12 @@ method query*[BT](self: ThreadDatastore[BT],
## keeps one thread running queryTask until finished ## keeps one thread running queryTask until finished
## ##
await self.semaphore.acquire() await self.semaphore.acquire()
without signal =? acquireSignal(), err: let signal = acquireSignal().get()
return failure err # without signal =? acquireSignal(), err:
without nextSignal =? acquireSignal(), err: # return failure err
return failure err let nextSignal = acquireSignal().get()
# without nextSignal =? acquireSignal(), err:
# return failure err
let ctx = newTaskCtx(QResult, signal=signal, nextSignal=nextSignal) let ctx = newTaskCtx(QResult, signal=signal, nextSignal=nextSignal)
proc iterDispose() {.async.} = proc iterDispose() {.async.} =