mirror of
https://github.com/status-im/nim-codex.git
synced 2025-02-22 07:28:32 +00:00
fix results stuff
This commit is contained in:
parent
ebc284ae6a
commit
0bbd558ee7
@ -64,10 +64,6 @@ proc prove*[H](
|
|||||||
let res: ?!CircomProof = failure(err)
|
let res: ?!CircomProof = failure(err)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
let sigRes = signal.close()
|
|
||||||
if sigRes.isErr:
|
|
||||||
return failure(sigRes.error())
|
|
||||||
|
|
||||||
let pf: CircomProof = proof
|
let pf: CircomProof = proof
|
||||||
success(pf)
|
success(pf)
|
||||||
|
|
||||||
|
@ -12,15 +12,22 @@ const
|
|||||||
proc awaitThreadResult*[T](signal: ThreadSignalPtr, handle: Flowvar[T]): Future[?!T] {.async.} =
|
proc awaitThreadResult*[T](signal: ThreadSignalPtr, handle: Flowvar[T]): Future[?!T] {.async.} =
|
||||||
await wait(signal)
|
await wait(signal)
|
||||||
|
|
||||||
|
proc closeSig() =
|
||||||
|
let sigRes = signal.close()
|
||||||
|
if sigRes.isErr:
|
||||||
|
return failure(sigRes.error())
|
||||||
|
|
||||||
var
|
var
|
||||||
res: T
|
res: T
|
||||||
awaitTotal: Duration
|
awaitTotal: Duration
|
||||||
|
|
||||||
while awaitTotal < CompletionTimeout:
|
while awaitTotal < CompletionTimeout:
|
||||||
if handle.tryComplete(res):
|
if handle.tryComplete(res): ## TODO: pretty sure this leaks currently
|
||||||
|
closeSig()
|
||||||
return success(res)
|
return success(res)
|
||||||
else:
|
else:
|
||||||
awaitTotal += CompletionRetryDelay
|
awaitTotal += CompletionRetryDelay
|
||||||
await sleepAsync(CompletionRetryDelay)
|
await sleepAsync(CompletionRetryDelay)
|
||||||
|
|
||||||
|
closeSig()
|
||||||
return failure("Task signaled finish but didn't return any result within " & $CompletionRetryDelay)
|
return failure("Task signaled finish but didn't return any result within " & $CompletionRetryDelay)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user