-
-
Notifications
You must be signed in to change notification settings - Fork 344
libuv notes
Some notes from reading libuv:
-
UDP sends seem to be dispatched immediately without any backpressure to the app
-
IPV6_V6ONLY uniformly disabled
-
In general, uses
SetFileCompletionNotificationModes
to try and avoid bouncing through the IOCP when possible; they say this is a major performance win. I'm skeptical about this transferring over, though, given our yield point semantics – I think the win they're talking about is basically the greedy write/read optimization. -
Handling of
SetFileCompletionNotificationModes
for UDP has some significant complications to work around bugs -
On Windows, sets both
SO_REUSEADDR
andSO_EXCLUSIVEADDR
to false, to allow rebinding ofTIME_WAIT
sockets. But then there's https://github.com/joyent/libuv/issues/150 -
On windows, optionally issues multiple
AcceptEx
calls simultaneously (for efficiency under high accept load I guess) -
There are some complications around cancellation and LSPs... if a "non-IF SLSP" is installed, then libuv uses WSAIoctl to get the base handle before trying to cancel things