mall: properly delete on %kick

This commit is contained in:
Philip Monk 2019-11-07 18:25:19 -08:00
parent 56db09470e
commit d096c18377
No known key found for this signature in database
GPG Key ID: B66E1F02604E44EC
2 changed files with 16 additions and 9 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a1ea917758ffc1fac7195f0965e89a3210cb36ebc1b8777395932283a5580678
size 9150629
oid sha256:d043e604842af169bace8c4d149f86126307a289c762d93d7cc5bbf08fd04112
size 9152967

View File

@ -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])
--
--