From b6017f1501fb89fb32dcfd7c16eb372c2376f219 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 3 Jun 2019 12:08:30 +0100 Subject: [PATCH] Use `false` for acks, since `null` doesn't travel well --- packages/driver-streams-node/src/buffer.js | 2 +- packages/driver-streams-node/src/streams.js | 6 +++--- packages/server/src/server.js | 2 +- packages/syntax-playground/src/chatclient.js | 4 ++-- packages/syntax-playground/src/chatserver.js | 6 +++--- packages/syntax-playground/src/ncchatclient.js | 6 +++--- packages/syntax-playground/src/socks.js | 14 +++++++------- packages/syntax-playground/src/ssh-relay.js | 4 ++-- packages/syntax-playground/src/subprocess.js | 4 ++-- 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/driver-streams-node/src/buffer.js b/packages/driver-streams-node/src/buffer.js index 23adfa8..6aa7cb8 100644 --- a/packages/driver-streams-node/src/buffer.js +++ b/packages/driver-streams-node/src/buffer.js @@ -52,7 +52,7 @@ function _spawnBufferStream(id) { } stop on message S.Stream(id, S.Close($ack)) { - if (ack !== null) send ack; + if (ack !== false) send ack; } on message S.Stream(id, PacketRequest($size)) { diff --git a/packages/driver-streams-node/src/streams.js b/packages/driver-streams-node/src/streams.js index 509d9ff..410a3ed 100644 --- a/packages/driver-streams-node/src/streams.js +++ b/packages/driver-streams-node/src/streams.js @@ -41,8 +41,8 @@ message type Rejected(err); // for both incoming and outgoing connections // Each `chunk` to/from a stream in OBJECT mode may be any value // except `null`. // -// Each `ack`, if non-`null`, is an acknowledgement MESSAGE to be sent -// when the corresponding chunk is completely processed. +// Each `ack`, if non-`false`, is an acknowledgement MESSAGE to be +// sent when the corresponding chunk is completely processed. // Interest in StreamInfo is non-creative assertion type Info(kind, stream); // kind ∈ Readable, Writable, Duplex @@ -189,7 +189,7 @@ function _writableStreamBehaviour(id, s) { s.on('drain', Dataspace.wrapExternal(() => { this.inboundWindow = refreshWindow(); })); - const callbackFor = (k) => (k === null ? void 0 : Dataspace.wrapExternal(() => { send k; })); + const callbackFor = (k) => (k === false ? void 0 : Dataspace.wrapExternal(() => { send k; })); on message Stream(id, Push($chunk, $ack)) { s.write(objectMode ? chunk : Bytes.toIO(chunk), callbackFor(ack)); diff --git a/packages/server/src/server.js b/packages/server/src/server.js index 7116e31..64bf6d2 100644 --- a/packages/server/src/server.js +++ b/packages/server/src/server.js @@ -37,7 +37,7 @@ export function streamServerFacet(id) { let v; while ((v = decoder.try_next())) send P.FromPOA(id, v); }); - on message P.ToPOA(id, $resp) send S.Stream(id, S.Push(new Encoder().push(resp).contents(), null)); + on message P.ToPOA(id, $resp) send S.Stream(id, S.Push(new Encoder().push(resp).contents(), false)); stop on message P.Disconnect(id); stop on retracted P.POAReady(id); } diff --git a/packages/syntax-playground/src/chatclient.js b/packages/syntax-playground/src/chatclient.js index dbb2547..168e42d 100644 --- a/packages/syntax-playground/src/chatclient.js +++ b/packages/syntax-playground/src/chatclient.js @@ -45,10 +45,10 @@ spawn named 'chatclient' { assert S.Stream(id, S.BackPressure(stdout)); on message S.Stream(stdin, S.Line($line)) { - send S.Stream(id, S.Push(line.toString('utf-8') + '\n', null)); + send S.Stream(id, S.Push(line.toString('utf-8') + '\n', false)); } on message S.Stream(id, S.Line($line)) { - send S.Stream(stdout, S.Push(line.toString('utf-8') + '\n', null)); + send S.Stream(stdout, S.Push(line.toString('utf-8') + '\n', false)); } } } diff --git a/packages/syntax-playground/src/chatserver.js b/packages/syntax-playground/src/chatserver.js index 68e9bf8..486c358 100644 --- a/packages/syntax-playground/src/chatserver.js +++ b/packages/syntax-playground/src/chatserver.js @@ -29,11 +29,11 @@ spawn named 'chatserver' { stop on retracted S.Stream(id, S.Duplex()); assert Present(me); - on asserted Present($who) send S.Stream(id, S.Push(`${who} arrived.\n`, null)); - on retracted Present($who) send S.Stream(id, S.Push(`${who} departed.\n`, null)); + on asserted Present($who) send S.Stream(id, S.Push(`${who} arrived.\n`, false)); + on retracted Present($who) send S.Stream(id, S.Push(`${who} departed.\n`, false)); on message S.Stream(id, S.Line($line)) send Speak(me, line); - on message Speak($who, $what) send S.Stream(id, S.Push(`${who}: ${what}\n`, null)); + on message Speak($who, $what) send S.Stream(id, S.Push(`${who}: ${what}\n`, false)); } } } diff --git a/packages/syntax-playground/src/ncchatclient.js b/packages/syntax-playground/src/ncchatclient.js index ef3bb18..1c8f0f6 100644 --- a/packages/syntax-playground/src/ncchatclient.js +++ b/packages/syntax-playground/src/ncchatclient.js @@ -41,15 +41,15 @@ spawn named 'chatclient-via-nc' { react { on message S.Stream(stdin, S.Line($line)) { console.log('INPUT:', line); - send S.Stream(i, S.Push(line.toString('utf-8') + '\n', null)); + send S.Stream(i, S.Push(line.toString('utf-8') + '\n', false)); } on message S.Stream(stdin, S.End()) { console.log('INPUT EOF'); - send S.Stream(i, S.Close(null)); + send S.Stream(i, S.Close(false)); } on message S.Stream(o, S.Line($line)) { - send S.Stream(stdout, S.Push(line.toString('utf-8') + '\n', null)); + send S.Stream(stdout, S.Push(line.toString('utf-8') + '\n', false)); } } } diff --git a/packages/syntax-playground/src/socks.js b/packages/syntax-playground/src/socks.js index 1092731..a743e6d 100644 --- a/packages/syntax-playground/src/socks.js +++ b/packages/syntax-playground/src/socks.js @@ -22,7 +22,7 @@ spawn named 'socks-server' { on start react { stop on (!this.bufferWanted); assert Observe(S.Stream(buf, S.Duplex())); - on message S.Stream(conn, S.Data($chunk)) send S.Stream(buf, S.Push(chunk, null)); + on message S.Stream(conn, S.Data($chunk)) send S.Stream(buf, S.Push(chunk, false)); } on start selectAuthenticationMethod(); @@ -40,7 +40,7 @@ spawn named 'socks-server' { send S.Stream(conn, S.Push(Bytes.concat([ Bytes.from([5, replyCode, 0]), (addrTypeAddrPort || Bytes.from([1, 0,0,0,0, 0,0])) - ]), null)); + ]), false)); } function dieOnBadVersion(packet) { @@ -54,10 +54,10 @@ spawn named 'socks-server' { readChunk(nMethods, (methods) => { if (!methods.includes(0)) { console.error('Client will not accept no-authentication'); - send S.Stream(conn, S.Push(Bytes.from([5, 255]), null)); + send S.Stream(conn, S.Push(Bytes.from([5, 255]), false)); rootFacet.stop(); } else { - send S.Stream(conn, S.Push(Bytes.from([5, 0]), null)); // select no-authentication + send S.Stream(conn, S.Push(Bytes.from([5, 0]), false)); // select no-authentication readSocksRequest(); } }); @@ -175,15 +175,15 @@ spawn named 'socks-server' { sendReply(0 /* success */, localEnd); readChunk(0, (firstChunk) => { self.bufferWanted = false; - send S.Stream(out, S.Push(firstChunk, null)); + send S.Stream(out, S.Push(firstChunk, false)); react { assert S.Stream(conn, S.BackPressure(out)); assert S.Stream(out, S.BackPressure(conn)); on message S.Stream(conn, S.Data($chunk)) { - send S.Stream(out, S.Push(chunk, null)); + send S.Stream(out, S.Push(chunk, false)); } on message S.Stream(out, S.Data($chunk)) { - send S.Stream(conn, S.Push(chunk, null)); + send S.Stream(conn, S.Push(chunk, false)); } } }); diff --git a/packages/syntax-playground/src/ssh-relay.js b/packages/syntax-playground/src/ssh-relay.js index e564133..6104565 100644 --- a/packages/syntax-playground/src/ssh-relay.js +++ b/packages/syntax-playground/src/ssh-relay.js @@ -17,8 +17,8 @@ spawn named 'ssh-relay-server' { stop on retracted S.Stream(daemon, S.Duplex()); assert S.Stream(conn, S.BackPressure(daemon)); assert S.Stream(daemon, S.BackPressure(conn)); - on message S.Stream(conn, S.Data($chunk)) send S.Stream(daemon, S.Push(chunk, null)); - on message S.Stream(daemon, S.Data($chunk)) send S.Stream(conn, S.Push(chunk, null)); + on message S.Stream(conn, S.Data($chunk)) send S.Stream(daemon, S.Push(chunk, false)); + on message S.Stream(daemon, S.Data($chunk)) send S.Stream(conn, S.Push(chunk, false)); } } } diff --git a/packages/syntax-playground/src/subprocess.js b/packages/syntax-playground/src/subprocess.js index 38e0351..68d7fbc 100644 --- a/packages/syntax-playground/src/subprocess.js +++ b/packages/syntax-playground/src/subprocess.js @@ -29,8 +29,8 @@ spawn named 'lister' { stop on message S.SubprocessError(id, $err) console.error("Couldn't start subprocess", err); on asserted S.SubprocessRunning(id, _, [$i, $o, _]) { - send S.Stream(i, S.Push("GET / HTTP/1.0\r\n\r\n", null)); - send S.Stream(i, S.Close(null)); + send S.Stream(i, S.Push("GET / HTTP/1.0\r\n\r\n", false)); + send S.Stream(i, S.Close(false)); react { on message S.Stream(o, S.Data($chunk)) console.log(chunk); on asserted S.Stream(o, S.End()) console.log('DONE!');