mirror of
https://github.com/urbit/shrub.git
synced 2024-11-23 20:26:54 +03:00
mall: properly delete on %kick
This commit is contained in:
parent
56db09470e
commit
d096c18377
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a1ea917758ffc1fac7195f0965e89a3210cb36ebc1b8777395932283a5580678
|
||||
size 9150629
|
||||
oid sha256:d043e604842af169bace8c4d149f86126307a289c762d93d7cc5bbf08fd04112
|
||||
size 9152967
|
||||
|
@ -1371,13 +1371,15 @@
|
||||
::
|
||||
=? outgoing.subscribers.current-agent ?=(%kick -.gift)
|
||||
%- ~(del by outgoing.subscribers.current-agent)
|
||||
[wire dock]
|
||||
[agent-wire dock]
|
||||
?: ?& ?=(%watch-ack -.gift)
|
||||
!(~(has by outgoing.subscribers.current-agent) [agent-wire dock])
|
||||
==
|
||||
%- %: slog
|
||||
leaf+"{<agent-name>}: got ack for nonexistent subscription"
|
||||
leaf+"{<dock>}: {<agent-wire>}"
|
||||
>wire=wire<
|
||||
>out=outgoing.subscribers.current-agent<
|
||||
~
|
||||
==
|
||||
ap-core
|
||||
@ -1559,25 +1561,30 @@
|
||||
=/ =move i.moves
|
||||
?: ?=([* %pass * %m %deal * * %leave *] move)
|
||||
=/ =wire p.move.move
|
||||
?> ?=([%use @ @ %out @ @ *] wire)
|
||||
=/ short-wire t.t.t.t.t.t.wire
|
||||
=/ =dock [q.p q]:q.move.move
|
||||
=. outgoing.subscribers.current-agent
|
||||
(~(del by outgoing.subscribers.current-agent) [wire dock])
|
||||
(~(del by outgoing.subscribers.current-agent) [short-wire dock])
|
||||
$(moves t.moves, new-moves [move new-moves])
|
||||
?. ?=([* %pass * %m %deal * * %watch *] move)
|
||||
$(moves t.moves, new-moves [move new-moves])
|
||||
=/ =wire p.move.move
|
||||
?> ?=([%use @ @ %out @ @ *] wire)
|
||||
=/ short-wire t.t.t.t.t.t.wire
|
||||
=/ =dock [q.p q]:q.move.move
|
||||
=/ =path path.r.q.move.move
|
||||
?: (~(has by outgoing.subscribers.current-agent) wire dock)
|
||||
?: (~(has by outgoing.subscribers.current-agent) short-wire dock)
|
||||
=. ap-core
|
||||
=/ way [%out (scot %p p.dock) q.dock wire]
|
||||
=/ way [%out (scot %p p.dock) q.dock short-wire]
|
||||
=/ =tang
|
||||
~[leaf+"subscribe wire not unique" >agent-name< >wire< >dock<]
|
||||
%- (slog leaf/"XXX remove" tang)
|
||||
~[leaf+"subscribe wire not unique" >agent-name< >short-wire< >dock<]
|
||||
%- (slog >out=outgoing.subscribers.current-agent< leaf/"XXX remove" tang)
|
||||
(ap-specific-take way %watch-ack `tang)
|
||||
$(moves t.moves)
|
||||
~& >> %peer-new
|
||||
=. outgoing.subscribers.current-agent
|
||||
(~(put by outgoing.subscribers.current-agent) [wire dock] [| path])
|
||||
(~(put by outgoing.subscribers.current-agent) [short-wire dock] [| path])
|
||||
$(moves t.moves, new-moves [move new-moves])
|
||||
--
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user