cpython: c1c247cf3488 (original) (raw)

Mercurial > cpython

changeset 103833:c1c247cf3488 3.5

Issue #28174: Handle when SO_REUSEPORT isn't properly supported (asyncio) Patch by Seth Michael Larson. [#28174]

Yury Selivanov yury@magic.io
date Thu, 15 Sep 2016 15:45:07 -0400
parents 1dcfafed3cb0
children f2fdb624074a 4ab64ea31d75
files Lib/asyncio/base_events.py Lib/test/test_asyncio/test_base_events.py Misc/NEWS
diffstat 3 files changed, 27 insertions(+), 12 deletions(-)[+] [-] Lib/asyncio/base_events.py 25 Lib/test/test_asyncio/test_base_events.py 11 Misc/NEWS 3

line wrap: on

line diff

--- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -76,6 +76,17 @@ def _format_pipe(fd): return repr(fd) +def _set_reuseport(sock):

+ +

Linux's sock.type is a bitmask that can include extra info about socket.

_SOCKET_TYPE_MASK = 0 if hasattr(socket, 'SOCK_NONBLOCK'): @@ -873,12 +884,7 @@ class BaseEventLoop(events.AbstractEvent sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) if reuse_port:

@@ -1001,12 +1007,7 @@ class BaseEventLoop(events.AbstractEvent sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, True) if reuse_port:

--- a/Lib/test/test_asyncio/test_base_events.py +++ b/Lib/test/test_asyncio/test_base_events.py @@ -1371,6 +1371,17 @@ class BaseEventLoopWithSelectorTests(tes self.assertRaises(ValueError, self.loop.run_until_complete, f) @patch_socket

+

+

+

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -266,6 +266,9 @@ Library