diff options
author | bptato <nincsnevem662@gmail.com> | 2024-07-13 19:35:34 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-07-13 19:51:42 +0200 |
commit | 224640dc58ee7a4837597ed7a10a17dac4d95629 (patch) | |
tree | d2a2b40081a65e49d23bfb4df2725236542e201c | |
parent | bf231d2e50c342fdd688b7e944ff5c934610e08b (diff) | |
download | chawan-224640dc58ee7a4837597ed7a10a17dac4d95629.tar.gz |
32-bit compilation fixes
It seems registerHandle/unregister doesn't accept cint as handles. Not sure why it even works on 64-bit targets... (maybe some converter weirdness?) Seems best to explicitly cast it away.
-rw-r--r-- | src/loader/loader.nim | 10 | ||||
-rw-r--r-- | src/local/client.nim | 2 | ||||
-rw-r--r-- | src/local/pager.nim | 16 | ||||
-rw-r--r-- | src/server/buffer.nim | 6 |
4 files changed, 17 insertions, 17 deletions
diff --git a/src/loader/loader.nim b/src/loader/loader.nim index 78f5f0d7..29913031 100644 --- a/src/loader/loader.nim +++ b/src/loader/loader.nim @@ -176,12 +176,12 @@ type PushBufferResult = enum proc register(ctx: LoaderContext; output: OutputHandle) = assert not output.registered - ctx.selector.registerHandle(output.ostream.fd, {Write}, 0) + ctx.selector.registerHandle(int(output.ostream.fd), {Write}, 0) output.registered = true proc unregister(ctx: LoaderContext; output: OutputHandle) = assert output.registered - ctx.selector.unregister(output.ostream.fd) + ctx.selector.unregister(int(output.ostream.fd)) output.registered = false # Either write data to the target output, or append it to the list of buffers to @@ -271,7 +271,7 @@ proc addFd(ctx: LoaderContext; handle: LoaderHandle) = let output = handle.output output.ostream.setBlocking(false) handle.istream.setBlocking(false) - ctx.selector.registerHandle(handle.istream.fd, {Read}, 0) + ctx.selector.registerHandle(int(handle.istream.fd), {Read}, 0) assert handle.istream.fd notin ctx.handleMap assert output.ostream.fd notin ctx.outputMap ctx.handleMap[handle.istream.fd] = handle @@ -826,7 +826,7 @@ proc finishCycle(ctx: LoaderContext; unregRead: var seq[LoaderHandle]; # unregistered handles to nil. for handle in unregRead: if handle.istream != nil: - ctx.selector.unregister(handle.istream.fd) + ctx.selector.unregister(int(handle.istream.fd)) ctx.handleMap.del(handle.istream.fd) if handle.parser != nil: handle.finishParse() @@ -847,7 +847,7 @@ proc finishCycle(ctx: LoaderContext; unregRead: var seq[LoaderHandle]; handle.outputs.del(i) if handle.outputs.len == 0 and handle.istream != nil: # premature end of all output streams; kill istream too - ctx.selector.unregister(handle.istream.fd) + ctx.selector.unregister(int(handle.istream.fd)) ctx.handleMap.del(handle.istream.fd) if handle.parser != nil: handle.finishParse() diff --git a/src/local/client.nim b/src/local/client.nim index 7a218a11..a852d8cd 100644 --- a/src/local/client.nim +++ b/src/local/client.nim @@ -405,7 +405,7 @@ proc acceptBuffers(client: Client) = elif (let i = pager.findConnectingContainer(container); i != -1): # connecting to URL let stream = pager.connectingContainers[i].stream - client.selector.unregister(stream.fd) + client.selector.unregister(int(stream.fd)) stream.sclose() pager.connectingContainers.del(i) let registerFun = proc(fd: int) = diff --git a/src/local/pager.nim b/src/local/pager.nim index 765bb89d..dfa7d014 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -1937,6 +1937,10 @@ proc connected(pager: Pager; container: Container; response: Response) = pager.deleteContainer(container, container.find(ndAny)) pager.refreshStatusMsg() +proc unregisterFd(pager: Pager; fd: int) = + pager.selector.unregister(fd) + pager.loader.unregistered.add(fd) + # true if done, false if keep proc handleConnectingContainer*(pager: Pager; i: int) = let item = pager.connectingContainers[i] @@ -1961,8 +1965,7 @@ proc handleConnectingContainer*(pager: Pager; i: int) = pager.fail(container, msg) # done pager.connectingContainers.del(i) - pager.selector.unregister(item.stream.fd) - pager.loader.unregistered.add(item.stream.fd) + pager.unregisterFd(int(item.stream.fd)) stream.sclose() of ccsBeforeStatus: var r = stream.initPacketReader() @@ -1981,8 +1984,7 @@ proc handleConnectingContainer*(pager: Pager; i: int) = r.sread(response.headers) # done pager.connectingContainers.del(i) - pager.selector.unregister(item.stream.fd) - pager.loader.unregistered.add(item.stream.fd) + pager.unregisterFd(int(item.stream.fd)) let redirect = response.getRedirect(container.request) if redirect != nil: stream.sclose() @@ -1993,8 +1995,7 @@ proc handleConnectingContainer*(pager: Pager; i: int) = proc handleConnectingContainerError*(pager: Pager; i: int) = let item = pager.connectingContainers[i] pager.fail(item.container, "loader died while loading") - pager.selector.unregister(item.stream.fd) - pager.loader.unregistered.add(item.stream.fd) + pager.unregisterFd(int(item.stream.fd)) item.stream.sclose() pager.connectingContainers.del(i) @@ -2067,8 +2068,7 @@ proc handleEvent0(pager: Pager; container: Container; event: ContainerEvent): dec pager.numload pager.deleteContainer(container, container.find(ndAny)) pager.connectingContainers.del(i) - pager.selector.unregister(item.stream.fd) - pager.loader.unregistered.add(item.stream.fd) + pager.unregisterFd(int(item.stream.fd)) item.stream.sclose() return true diff --git a/src/server/buffer.nim b/src/server/buffer.nim index 4c01e3d9..743fa46a 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -978,7 +978,7 @@ proc clone*(buffer: Buffer; newurl: URL): int {.proxy.} = doAssert outputId != -1 and stream != nil response.outputId = outputId response.body = stream - let fd = response.body.fd + let fd = int(response.body.fd) buffer.loader.ongoing[fd] = response buffer.selector.registerHandle(fd, {Read}, 0) if buffer.istream != nil: @@ -1934,10 +1934,10 @@ proc launchBuffer*(config: BufferConfig; url: URL; attrs: WindowAttributes; r.sread(buffer.loader.key) r.sread(buffer.cacheId) let fd = pstream.recvFileHandle() - buffer.fd = fd + buffer.fd = int(fd) buffer.istream = newPosixStream(fd) buffer.istream.setBlocking(false) - buffer.selector.registerHandle(fd, {Read}, 0) + buffer.selector.registerHandle(int(fd), {Read}, 0) loader.registerFun = proc(fd: int) = buffer.selector.registerHandle(fd, {Read}, 0) loader.unregisterFun = proc(fd: int) = |