about summary refs log tree commit diff stats
path: root/src/local
diff options
context:
space:
mode:
Diffstat (limited to 'src/local')
-rw-r--r--src/local/client.nim6
-rw-r--r--src/local/container.nim4
2 files changed, 6 insertions, 4 deletions
diff --git a/src/local/client.nim b/src/local/client.nim
index d41fa0d9..8e29bdc6 100644
--- a/src/local/client.nim
+++ b/src/local/client.nim
@@ -422,7 +422,11 @@ proc acceptBuffers(client: Client) =
         outCacheId = loader.addCacheFile(item.ostreamOutputId, pid).outputId
         loader.resume(@[item.istreamOutputId, item.ostreamOutputId])
       # pass down fdout
-      container.setStream(stream, registerFun, item.fdout, outCacheId)
+      stream.sendFileHandle(item.fdout)
+      stream.withWriter w:
+        w.swrite(outCacheId)
+      discard close(item.fdout)
+      container.setStream(stream, registerFun)
     else:
       # buffer is cloned, no need to cache anything
       container.setCloneStream(stream, registerFun)
diff --git a/src/local/container.nim b/src/local/container.nim
index 41cc2efd..c44a9bc7 100644
--- a/src/local/container.nim
+++ b/src/local/container.nim
@@ -1586,11 +1586,9 @@ proc handleCommand(container: Container) =
   container.iface.resolve(packetid, len - slen(packetid))
 
 proc setStream*(container: Container; stream: SocketStream;
-    registerFun: proc(fd: int); fd: FileHandle; outCacheId: int) =
+    registerFun: proc(fd: int)) =
   assert cfCloned notin container.flags
   container.iface = newBufferInterface(stream, registerFun)
-  container.iface.passFd(fd, outCacheId)
-  discard close(fd)
   discard container.iface.load().then(proc(res: int) =
     container.onload(res)
   )