Don't bother with Commit for each Msg/Message
This commit is contained in:
parent
18ba7a05cf
commit
c718d04291
|
@ -70,7 +70,10 @@ export function _genericClientSessionFacet(addr, scope, w0, debug) {
|
|||
on stop outboundTurn.extend(Clear(ep));
|
||||
}
|
||||
|
||||
on message ToServer(addr, $a) outboundTurn.extend(Message(a));
|
||||
on message ToServer(addr, $a) {
|
||||
outboundTurn.commit();
|
||||
w(Message(a));
|
||||
}
|
||||
|
||||
on message _ServerPacket(addr, Ping()) w(Pong());
|
||||
|
||||
|
@ -87,9 +90,9 @@ export function _genericClientSessionFacet(addr, scope, w0, debug) {
|
|||
});
|
||||
}
|
||||
})
|
||||
on message _ServerPacket(addr, Msg(ep, $vs)) inboundTurn.extend(() => {
|
||||
on message _ServerPacket(addr, Msg(ep, $vs)) {
|
||||
send Skeleton.instantiateAssertion(FromServer(addr, spec), vs);
|
||||
})
|
||||
}
|
||||
on message _ServerPacket(addr, Commit()) inboundTurn.commit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,10 +73,11 @@ spawn named '@syndicate-lang/server/server/POAHandler' {
|
|||
this.scope = scope;
|
||||
}
|
||||
|
||||
const sendToPOA = (m) => { send P.ToPOA(connId, m); };
|
||||
const outboundTurn = Turn.recorder(this, 'commitNeeded',
|
||||
{
|
||||
extend: (m) => { send P.ToPOA(connId, m); },
|
||||
commit: () => { send P.ToPOA(connId, W.Commit()); },
|
||||
extend: sendToPOA,
|
||||
commit: () => { sendToPOA(W.Commit()); },
|
||||
debug: debug
|
||||
});
|
||||
const inboundTurn = Turn.replayer({ debug: debug });
|
||||
|
@ -101,7 +102,11 @@ spawn named '@syndicate-lang/server/server/POAHandler' {
|
|||
switch (evt) {
|
||||
case Skeleton.EVENT_ADDED: outboundTurn.extend(W.Add(ep, vs)); break;
|
||||
case Skeleton.EVENT_REMOVED: outboundTurn.extend(W.Del(ep, vs)); break;
|
||||
case Skeleton.EVENT_MESSAGE: outboundTurn.extend(W.Msg(ep, vs)); break;
|
||||
case Skeleton.EVENT_MESSAGE: {
|
||||
outboundTurn.commit();
|
||||
sendToPOA(W.Msg(ep, vs));
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -121,9 +126,9 @@ spawn named '@syndicate-lang/server/server/POAHandler' {
|
|||
}
|
||||
});
|
||||
|
||||
on message P.FromPOA(connId, W.Message($body)) inboundTurn.extend(() => {
|
||||
on message P.FromPOA(connId, W.Message($body)) {
|
||||
send P.Proposal(this.scope, body);
|
||||
});
|
||||
}
|
||||
|
||||
on message P.FromPOA(connId, W.Commit()) inboundTurn.commit();
|
||||
}
|
||||
|
|
|
@ -4,19 +4,20 @@ import { Dataspace, _Dataspace, currentFacet } from "@syndicate-lang/core";
|
|||
const PRIORITY = _Dataspace.PRIORITY;
|
||||
|
||||
export function recorder(fields, fieldName, callbacks) {
|
||||
field fields[fieldName] = false;
|
||||
currentFacet().addDataflow(() => {
|
||||
function extend(item) {
|
||||
callbacks.extend(item);
|
||||
fields[fieldName] = true;
|
||||
}
|
||||
function commit() {
|
||||
if (fields[fieldName]) {
|
||||
callbacks.commit();
|
||||
fields[fieldName] = false;
|
||||
}
|
||||
}, PRIORITY.IDLE);
|
||||
return {
|
||||
extend: function (item) {
|
||||
callbacks.extend(item);
|
||||
fields[fieldName] = true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
field fields[fieldName] = false;
|
||||
currentFacet().addDataflow(commit, PRIORITY.IDLE);
|
||||
return { extend, commit };
|
||||
}
|
||||
|
||||
export function replayer(callbacks0) {
|
||||
|
|
Loading…
Reference in New Issue