Add addCallback variant that passes on the value of a Future
This commit is contained in:
parent
170f49693c
commit
b1b0477b8a
|
@ -470,6 +470,13 @@ proc addCallback*(fut: FutureBase; turn: var Turn; act: TurnAction) =
|
||||||
else:
|
else:
|
||||||
addCallback(fut, turn.facet, act)
|
addCallback(fut, turn.facet, act)
|
||||||
|
|
||||||
|
proc addCallback*[T](fut: Future[T]; turn: var Turn; act: proc (t: var Turn, x: T) {.gcsafe.}) =
|
||||||
|
addCallback(fut) do ():
|
||||||
|
if fut.failed: terminate(facet.facet, fut.error)
|
||||||
|
else:
|
||||||
|
run(facet) do (turn: var Turn):
|
||||||
|
act(turn, read fut)
|
||||||
|
|
||||||
proc stop*(turn: var Turn, facet: Facet) =
|
proc stop*(turn: var Turn, facet: Facet) =
|
||||||
enqueue(turn, facet.parent.get) do (turn: var Turn):
|
enqueue(turn, facet.parent.get) do (turn: var Turn):
|
||||||
facet.terminate(turn, true)
|
facet.terminate(turn, true)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "20230630"
|
version = "20230712"
|
||||||
author = "Emery Hemingway"
|
author = "Emery Hemingway"
|
||||||
description = "Syndicated actors for conversational concurrency"
|
description = "Syndicated actors for conversational concurrency"
|
||||||
license = "Unlicense"
|
license = "Unlicense"
|
||||||
|
|
Loading…
Reference in New Issue