diff options
author | bptato <nincsnevem662@gmail.com> | 2023-09-27 02:32:22 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2023-09-27 02:32:22 +0200 |
commit | 285b6f32c28d1cda403ba33bfb2d22c34fab2a1e (patch) | |
tree | 0ec51fbd1afbf142503f960e7634404f2e467617 /src/server | |
parent | 2d414c2b77acb8c276812d78ff814ccadc33691f (diff) | |
download | chawan-285b6f32c28d1cda403ba33bfb2d22c34fab2a1e.tar.gz |
interface clone: remove unused arg, document
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/buffer.nim | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/server/buffer.nim b/src/server/buffer.nim index d6c00ef9..3be0fdcf 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -141,14 +141,19 @@ proc newBufferInterface*(stream: Stream): BufferInterface = stream: stream ) -proc clone*(iface: BufferInterface, stream: Stream): BufferInterface = - let iface2 = newBufferInterface(stream) +# After cloning a buffer, we need a new interface to the new buffer process. +# Here we create a new interface for that clone. +proc cloneInterface*(stream: Stream): BufferInterface = + let iface = newBufferInterface(stream) + # We have just fork'ed the buffer process inside an interface function, + # from which the new buffer is going to return as well. So we must also + # consume the return value of the clone function, which is the pid 0. var len: int var pid: Pid stream.sread(len) - stream.sread(iface2.packetid) + stream.sread(iface.packetid) stream.sread(pid) - return iface2 + return iface proc resolve*(iface: BufferInterface, packetid, len: int) = iface.opaque.len = len |