On 6/9/2020 8:11 AM, Jon Zeppieri wrote:
On Tue, Jun 9, 2020 at 7:59 AM Bogdan Popa <bog...@defn.io> wrote:
> I think we'd need to also set `SO_REUSEPORT', which is not available on
> all platforms, to support multiple processes listening on the same port
> without reusing file descriptors.

And even where it is available, it doesn't work the same way. The
Linux version can be used to load balance accept()s across processes,
but the BSD version (also in OS X) cannot. (FreeBSD apparently has a
variant, SO_REUSEPORT_LB, that behaves like the Linux version of

And Windows has 2 options that mean essentially the same thing: SO_REUSE_UNICASTPORT  and  SO_PORT_SCALABILITY.

SO_PORT_SCALABILITY  was introduced in Windows 7 / Server 2008.
SO_REUSE_UNICASTPORT  was introduced in Windows 10.

Whichever port reuse option is supported by the platform, it normally is set automagically whenever  SO_REUSEADDR  is specified. Only functions that require an explicit bind need it to be set manually.

It's clear that enabling the functionality would have to be studied carefully.


You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 

Reply via email to