simplifying

This commit is contained in:
Jaremy Creechley 2023-09-25 22:51:34 -07:00
parent 77e53d2bf6
commit 53eedd946c
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300

View File

@ -63,7 +63,6 @@ type
# to avoid exhausting file descriptors
var finishLock: Lock
finishLock.initLock()
proc setCancelled(ctx: var TaskCtx): bool =
@ -74,6 +73,13 @@ proc setCancelled(ctx: var TaskCtx): bool =
ctx.cancelled = true
return true
proc acquireSignal(): ?!ThreadSignalPtr =
let signal = ThreadSignalPtr.new()
if signal.isErr():
failure (ref CatchableError)(msg: "failed to aquire ThreadSignalPtr: " & signal.error())
else:
success signal.get()
template dispatchTask(self: ThreadDatastore,
signal: ThreadSignalPtr,
fn: untyped): auto =
@ -97,20 +103,13 @@ template dispatchTask(self: ThreadDatastore,
discard ctx.signal.close()
self.semaphore.release()
proc acquireSignal(): ?!ThreadSignalPtr =
let signal = ThreadSignalPtr.new()
if signal.isErr():
failure (ref CatchableError)(msg: "failed to aquire ThreadSignalPtr: " & signal.error())
else:
success signal.get()
proc hasTask[D](ctx: ptr TaskCtx, ds: D) =
defer:
if not ctx.isNil:
discard ctx[].signal.fireSync()
try:
let res = has(ds, key)
let res = has(ds, ctx.key)
ctx.res = res.mapErr() do(e: ref CatchableError) -> ThreadResErr:
e.toThreadErr()
except CatchableError as exc: