aboutsummaryrefslogtreecommitdiff
path: root/docs/src/conf.py
diff options
context:
space:
mode:
authorJameson Nash <vtjnash@gmail.com>2021-06-10 13:12:07 -0400
committerGitHub <noreply@github.com>2021-06-10 13:12:07 -0400
commit99eb736b4c81c8a00aa52ebd75de7198fbbcddbe (patch)
tree5fd471780dfba3408cf66edf67befc7e14dd2978 /docs/src/conf.py
parent6b0051d14decb22cab1ae7ee0adf0da99620cafe (diff)
downloadlibuv-99eb736b4c81c8a00aa52ebd75de7198fbbcddbe.tar.gz
libuv-99eb736b4c81c8a00aa52ebd75de7198fbbcddbe.zip
win,tcp: make uv_close work more like unix
This is an attempt to fix some resource management issues on Windows. Win32 sockets have an issue where it sends an RST packet if there is an outstanding overlapped calls. We can avoid that by being certain to explicitly cancel our read and write requests first. This also removes some conditional cleanup code, since we might as well clean it up eagerly (like unix). Otherwise, it looks to me like these might cause the accept callbacks to be run after the endgame had freed the memory for them. The comment here seems mixed up between send and recv buffers. The default behavior on calling `closesocket` is already to do a graceful shutdown (see https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-closesocket with default l_onoff=zero) if it is the last open handle. The expected behavior if there are pending reads in flight is to send an RST packet, notifying the client that the server connection was destroyed before acknowledging the EOF. Additionally, we need to cancel writes explicitly: we need to notify Win32 that it is okay to cancel these writes (so it doesn't also generate an RST packet on the wire). Refs: https://github.com/libuv/libuv/pull/3035 Refs: https://github.com/nodejs/node/pull/35946 Refs: https://github.com/nodejs/node/issues/35904 Fixes: https://github.com/libuv/libuv/issues/3034 PR-URL: https://github.com/libuv/libuv/pull/3036 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Diffstat (limited to 'docs/src/conf.py')
0 files changed, 0 insertions, 0 deletions