p--b
released this
09 Apr 12:00
TF-1521: win32: address spurious exceptions during RPC (#11)
It was reported that this module was throwing spurious exceptions during
network operations on certain Windows devices. After some investigation,
it is revealed that this was because the `KJ_NONBLOCKING_SYSCALL` macro
was being used to inspect the outcome of a Winsock call, which results
in `errno` being consulted erroneously instead of `WSAGetLastError()`,
and thus causing the "accept `EWOULDBLOCK`" logic to be ineffective.
To resolve this, we apply an appropriate* amount of pre-processor fun to
define a new macro, `FA_NONBLOCKING_SOCKCALL` which does the "right
thing" depending on if you're on Windows or not, resolving the bug.
* opinions may vary
This PR bumps the version of the `capnp` package to `0.5.7`, and
provides a new pre-compiled module for the "cross-compilation" workflow,
which is the output of the code contained in this PR.
I have tested that this resolves the reported bug by manually building a
client containing this node module.