mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-04 22:53:08 +00:00
result types
This commit is contained in:
parent
da740f1bc8
commit
b8dad8bb60
@ -85,25 +85,18 @@ proc acquireSignal(): ?!ThreadSignalPtr =
|
||||
|
||||
template executeTask[T](ctx: TaskCtx[T], blk: untyped) =
|
||||
try:
|
||||
echo "executeTask:start:"
|
||||
if not ctx.setRunning():
|
||||
echo "executeTask:notRunning!"
|
||||
return
|
||||
|
||||
## run backend command
|
||||
echo "executeTask:run:"
|
||||
let res = `blk`
|
||||
if res.isOk():
|
||||
echo "executeTask:run:ok"
|
||||
when T is void:
|
||||
ctx[].res.ok()
|
||||
else:
|
||||
ctx[].res.ok(res.get())
|
||||
else:
|
||||
echo "executeTask:run:err"
|
||||
ctx[].res.err res.error().toThreadErr()
|
||||
echo "executeTask:run:done: ", ctx[].res.repr
|
||||
echo ""
|
||||
|
||||
except CatchableError as exc:
|
||||
trace "Unexpected exception thrown in async task", exc = exc.msg
|
||||
@ -112,10 +105,8 @@ template executeTask[T](ctx: TaskCtx[T], blk: untyped) =
|
||||
trace "Unexpected defect thrown in async task", exc = exc.msg
|
||||
ctx[].res.err exc.toThreadErr()
|
||||
finally:
|
||||
echo "executeTask:finally:setDone"
|
||||
ctx.setDone()
|
||||
discard ctx[].signal.fireSync()
|
||||
echo "executeTask:finally:done\n"
|
||||
|
||||
template dispatchTaskWrap[T](self: ThreadDatastore,
|
||||
signal: ThreadSignalPtr,
|
||||
@ -176,6 +167,7 @@ method delete*(self: ThreadDatastore,
|
||||
let key = KeyId.new key.id()
|
||||
dispatchTask[void](self, signal):
|
||||
self.tp.spawn deleteTask(ctx, ds, key)
|
||||
|
||||
return ctx[].res.toRes()
|
||||
|
||||
method delete*(self: ThreadDatastore,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user