diff --git a/src/syndicate/relays.nim b/src/syndicate/relays.nim index 89ac3a4..633ca10 100644 --- a/src/syndicate/relays.nim +++ b/src/syndicate/relays.nim @@ -561,11 +561,16 @@ proc resolve*(turn: var Turn; ds: Cap; route: Route; bootProc: BootProc) = proc resolveEnvironment*(turn: var Turn; bootProc: BootProc) = ## Resolve a capability from the calling environment ## and call `bootProc`. See envRoute_. + var resolved = false let ds = newDataspace(turn) pat = ResolvePath ?: {0: ?envRoute(), 3: ?:ResolvedAccepted} during(turn, ds, pat) do (dst: Cap): - bootProc(turn, dst) + if not resolved: + resolved = true + bootProc(turn, dst) + do: + resolved = false spawnRelays(turn, ds) # TODO: define a runActor that comes preloaded with relaying