Acknowledge endpoint Clear with an End; avoids late Add/Del messing things up
This commit is contained in:
parent
49821022f0
commit
652812471e
|
@ -95,7 +95,9 @@ spawn named '@syndicate-lang/server/federation/LocalLinkFactory' {
|
|||
msg: (vs) => sendFromPOA(W.Msg(ep, vs)),
|
||||
});
|
||||
assert P.Envelope(scope, Observe(spec));
|
||||
stop on message P.Envelope(managementScope, P.ToPOA(sessionId, W.Clear(ep)));
|
||||
stop on message P.Envelope(managementScope, P.ToPOA(sessionId, W.Clear(ep))) {
|
||||
sendFromPOA(W.End(ep));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,8 +340,7 @@ spawn named '@syndicate-lang/server/federation/ScopeFactory' {
|
|||
// summarise();
|
||||
}
|
||||
|
||||
on message P.Envelope(managementScope, P.ToPOA(linkid, W.Clear($localid))) {
|
||||
// NB ToPOA, not FromPOA!
|
||||
on message P.Envelope(managementScope, P.FromPOA(linkid, W.End($localid))) {
|
||||
(this.linkMatches.get(localid) || Set()).forEach((captures) => {
|
||||
removeMatch(localid, captures, linkid);
|
||||
});
|
||||
|
|
|
@ -14,6 +14,7 @@ message type Message(body);
|
|||
message type Add(endpointName, captures);
|
||||
message type Del(endpointName, captures);
|
||||
message type Msg(endpointName, captures);
|
||||
message type End(endpointName);
|
||||
message type Err(detail);
|
||||
|
||||
message type Ping();
|
||||
|
@ -33,7 +34,7 @@ Object.assign(module.exports, {
|
|||
Connect, Peer,
|
||||
Commit,
|
||||
Assert, Clear, Message,
|
||||
Add, Del, Msg, Err,
|
||||
Add, Del, Msg, Err, End,
|
||||
Ping, Pong,
|
||||
makeDecoder,
|
||||
});
|
||||
|
|
|
@ -115,7 +115,7 @@ spawn named '@syndicate-lang/server/server/POAHandler' {
|
|||
this.assertion = newAssertion;
|
||||
});
|
||||
on message P.FromPOA(connId, W.Clear(ep)) inboundTurn.extend(() => {
|
||||
epFacet.stop();
|
||||
epFacet.stop(() => { outboundTurn.extend(W.End(ep)); });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue