mirror of
https://github.com/urbit/shrub.git
synced 2024-12-19 00:13:12 +03:00
gall: fix %doff handling
Previous +ap-doff kicked the agent repeatedly. We needed to kick it only once. Now publisher agents clear their incoming subscription state without the subscriber making lots of new subscriptions because of repeated kicking.
This commit is contained in:
parent
0baad53fb4
commit
9e47490c95
@ -1774,14 +1774,14 @@
|
||||
=+ [wyr dok]=i.subs
|
||||
=/ let (~(got by boar.yoke) wyr dok)
|
||||
|- ^+ ap-core
|
||||
~> %slog.[0 leaf+"gall: +ap-doff {<agent-name>} {<dok>} {<let>}"]
|
||||
~> %slog.[0 leaf+"gall: +ap-doff {<[agent-name wyr 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 ~)
|
||||
=. ap-core (ap-pass wyr %huck dok %b %huck [%gall %unto %kick ~])
|
||||
^$(subs t.subs)
|
||||
:: +ap-mule: run virtualized with intercepted scry, preserving type
|
||||
::
|
||||
|
Loading…
Reference in New Issue
Block a user