mirror of
https://github.com/urbit/shrub.git
synced 2024-12-25 04:52:06 +03:00
ames: correctly %lose a %boon we crashed on
Previously, if we noticed %boon handling had caused a crash, we would transform any existing %boons into %losts, but still emit a new %boon for the message we ostensibly crashed on. Now, we make sure to just directly send a %lost if sending the %boon caused a crash. We drop the existing-moves transformation entirely, assuming it to vestigial.
This commit is contained in:
parent
2f16a3b1b1
commit
d8e11b68c2
@ -4018,15 +4018,13 @@
|
|||||||
::
|
::
|
||||||
=/ dat [her bone=bone message-num=message-num]
|
=/ dat [her bone=bone message-num=message-num]
|
||||||
?:(ok "sink boon {<dat>}" "crashed on sink boon {<dat>}")
|
?:(ok "sink boon {<dat>}" "crashed on sink boon {<dat>}")
|
||||||
=? moves !ok
|
:: if we previously crashed on this message;
|
||||||
:: we previously crashed on this message; notify client vane
|
:: notify client vane instead of making it try again
|
||||||
::
|
|
||||||
%+ turn moves
|
|
||||||
|= =move
|
|
||||||
?. ?=([* %give %boon *] move) move
|
|
||||||
[duct.move %give %lost ~]
|
|
||||||
::
|
::
|
||||||
=. peer-core (pe-emit (got-duct bone) %give %boon message)
|
=. peer-core
|
||||||
|
%+ pe-emit (got-duct bone)
|
||||||
|
?. ok [%give %lost ~]
|
||||||
|
[%give %boon message]
|
||||||
:: send ack unconditionally
|
:: send ack unconditionally
|
||||||
::
|
::
|
||||||
(call %done ok=%.y)
|
(call %done ok=%.y)
|
||||||
|
Loading…
Reference in New Issue
Block a user