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:
|
||||
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) =
|
||||
enqueue(turn, facet.parent.get) do (turn: var Turn):
|
||||
facet.terminate(turn, true)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Package
|
||||
|
||||
version = "20230630"
|
||||
version = "20230712"
|
||||
author = "Emery Hemingway"
|
||||
description = "Syndicated actors for conversational concurrency"
|
||||
license = "Unlicense"
|
||||
|
|
Loading…
Reference in New Issue