mirror of
https://github.com/urbit/shrub.git
synced 2024-12-19 00:13:12 +03:00
Merge fix to +ap-kill-down and use that pattern in +mo-doff.
This doesn't seem to work properly, but I'm not sure why so far.
This commit is contained in:
parent
e696816b8d
commit
c47f9c6053
@ -436,21 +436,8 @@
|
|||||||
=/ apps ~(tap by yokes.state)
|
=/ apps ~(tap by yokes.state)
|
||||||
|- ^+ mo-core
|
|- ^+ mo-core
|
||||||
?~ apps mo-core
|
?~ apps mo-core
|
||||||
=+ [dap yok]=[p q]:i.apps
|
=/ ap-core (ap-yoke:ap:mo-core p.i.apps [~ our] q.i.apps)
|
||||||
=/ ap-core (ap-yoke:ap:mo-core dap [~ our] yok)
|
$(apps t.apps, mo-core ap-abet:ap-doff:ap-core)
|
||||||
=. ap-core
|
|
||||||
=/ subs ~(tap in ~(key by boat.yok))
|
|
||||||
|- ^+ ap-core
|
|
||||||
?~ subs ap-core
|
|
||||||
=+ [wyr dok]=i.subs
|
|
||||||
=/ let (~(got by boar.yok) wyr dok)
|
|
||||||
|- ^+ ap-core
|
|
||||||
~> %slog.[0 leaf+"gall: +ap-kill-down {<dap>} {<dok>} {<let>}"]
|
|
||||||
?: =(0 let)
|
|
||||||
^$(subs t.subs, ap-core (ap-kill-down:ap-core wyr dok))
|
|
||||||
=. ap-core (ap-kill-down:ap-core [(scot %ud let) wyr] dok)
|
|
||||||
$(let (dec let))
|
|
||||||
$(apps t.apps, mo-core ap-abet:ap-core)
|
|
||||||
:: +mo-receive-core: receives an app core built by %ford.
|
:: +mo-receive-core: receives an app core built by %ford.
|
||||||
::
|
::
|
||||||
:: Presuming we receive a good core, we first check to see if the agent
|
:: Presuming we receive a good core, we first check to see if the agent
|
||||||
@ -1773,6 +1760,29 @@
|
|||||||
::
|
::
|
||||||
(ap-pass (ap-nonce-wire sub-wire dock) %agent dock %leave ~)
|
(ap-pass (ap-nonce-wire sub-wire dock) %agent dock %leave ~)
|
||||||
(ap-pass sub-wire %huck dock %b %huck `sign-arvo`[%gall %unto %kick ~])
|
(ap-pass sub-wire %huck dock %b %huck `sign-arvo`[%gall %unto %kick ~])
|
||||||
|
:: +ap-doff: kill all outgoing subscriptions
|
||||||
|
::
|
||||||
|
:: Also kills old subscriptions that should have been killed but
|
||||||
|
:: were not correctly removed in prerelease versions of the
|
||||||
|
:: request queue fix.
|
||||||
|
::
|
||||||
|
++ ap-doff
|
||||||
|
^+ ap-core
|
||||||
|
=/ subs ~(tap in ~(key by boat.yoke))
|
||||||
|
|- ^+ ap-core
|
||||||
|
?~ subs ap-core
|
||||||
|
=+ [wyr dok]=i.subs
|
||||||
|
=/ let (~(got by boar.yoke) wyr dok)
|
||||||
|
|- ^+ ap-core
|
||||||
|
~> %slog.[0 leaf+"gall: +ap-doff {<agent-name>} {<dok>} {<let>}"]
|
||||||
|
=. ap-core (ap-pass [(scot %ud let) wyr] %agent dok %leave ~)
|
||||||
|
=. ap-core (ap-pass wyr %huck dok %b %huck [%gall %unto %kick ~])
|
||||||
|
?. =(0 let)
|
||||||
|
$(let (dec let))
|
||||||
|
:: kill old-style subscription wire with no nonce
|
||||||
|
::
|
||||||
|
=. ap-core (ap-pass wyr %agent dok %leave ~)
|
||||||
|
^$(subs t.subs)
|
||||||
:: +ap-mule: run virtualized with intercepted scry, preserving type
|
:: +ap-mule: run virtualized with intercepted scry, preserving type
|
||||||
::
|
::
|
||||||
:: Compare +mute and +mule. Those pass through scry, which
|
:: Compare +mute and +mule. Those pass through scry, which
|
||||||
|
Loading…
Reference in New Issue
Block a user