From: Serhiy Storchaka Date: Sun, 1 Sep 2019 09:12:52 +0000 (+0300) Subject: bpo-15999: Always pass bool instead of int to socket.setblocking(). (GH-15621) X-Git-Tag: v3.9.0a1~718 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5eca7f3f3836cc734dfe8dc5ec669f3b4e9333fe;p=thirdparty%2FPython%2Fcpython.git bpo-15999: Always pass bool instead of int to socket.setblocking(). (GH-15621) --- diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst index bc71d85a83e9..4655f2806089 100644 --- a/Doc/howto/sockets.rst +++ b/Doc/howto/sockets.rst @@ -317,7 +317,7 @@ know about the mechanics of using sockets. You'll still use the same calls, in much the same ways. It's just that, if you do it right, your app will be almost inside-out. -In Python, you use ``socket.setblocking(0)`` to make it non-blocking. In C, it's +In Python, you use ``socket.setblocking(False)`` to make it non-blocking. In C, it's more complex, (for one thing, you'll need to choose between the BSD flavor ``O_NONBLOCK`` and the almost indistinguishable Posix flavor ``O_NDELAY``, which is completely different from ``TCP_NODELAY``), but it's the exact same idea. You diff --git a/Lib/asyncore.py b/Lib/asyncore.py index 0e92be3ad191..ce16f11a2f5c 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -228,7 +228,7 @@ class dispatcher: if sock: # Set to nonblocking just to make sure for cases where we # get a socket from a blocking source. - sock.setblocking(0) + sock.setblocking(False) self.set_socket(sock, map) self.connected = True # The constructor no longer requires that the socket @@ -280,7 +280,7 @@ class dispatcher: def create_socket(self, family=socket.AF_INET, type=socket.SOCK_STREAM): self.family_and_type = family, type sock = socket.socket(family, type) - sock.setblocking(0) + sock.setblocking(False) self.set_socket(sock) def set_socket(self, sock, map=None): diff --git a/Lib/test/test_asyncio/functional.py b/Lib/test/test_asyncio/functional.py index 70cd140f4796..4620d3e7a331 100644 --- a/Lib/test/test_asyncio/functional.py +++ b/Lib/test/test_asyncio/functional.py @@ -225,7 +225,7 @@ class TestThreadedServer(SocketThread): def run(self): try: with self._sock: - self._sock.setblocking(0) + self._sock.setblocking(False) self._run() finally: self._s1.close() diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index ce816cd603ec..14ff561da94f 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -4597,7 +4597,7 @@ class NonBlockingTCPTests(ThreadedTCPSocketTest): def testAccept(self): # Testing non-blocking accept - self.serv.setblocking(0) + self.serv.setblocking(False) # connect() didn't start: non-blocking accept() fails start_time = time.monotonic() @@ -4628,7 +4628,7 @@ class NonBlockingTCPTests(ThreadedTCPSocketTest): # Testing non-blocking recv conn, addr = self.serv.accept() self.addCleanup(conn.close) - conn.setblocking(0) + conn.setblocking(False) # the server didn't send data yet: non-blocking recv() fails with self.assertRaises(BlockingIOError): @@ -5698,15 +5698,15 @@ class NonblockConstantTest(unittest.TestCase): with socket.socket(socket.AF_INET, socket.SOCK_STREAM | socket.SOCK_NONBLOCK) as s: self.checkNonblock(s) - s.setblocking(1) + s.setblocking(True) self.checkNonblock(s, nonblock=False) - s.setblocking(0) + s.setblocking(False) self.checkNonblock(s) s.settimeout(None) self.checkNonblock(s, nonblock=False) s.settimeout(2.0) self.checkNonblock(s, timeout=2.0) - s.setblocking(1) + s.setblocking(True) self.checkNonblock(s, nonblock=False) # defaulttimeout t = socket.getdefaulttimeout() diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index afc5be9a7e99..6ad0b61d8a57 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -2209,7 +2209,7 @@ class ThreadedEchoServer(threading.Thread): self.running = False self.sock = connsock self.addr = addr - self.sock.setblocking(1) + self.sock.setblocking(True) self.sslconn = None threading.Thread.__init__(self) self.daemon = True @@ -3255,7 +3255,7 @@ class ThreadedTests(unittest.TestCase): wrapped = False with server: s = socket.socket() - s.setblocking(1) + s.setblocking(True) s.connect((HOST, server.port)) if support.verbose: sys.stdout.write("\n") diff --git a/Lib/test/test_timeout.py b/Lib/test/test_timeout.py index b07c07cbfc4d..0fe4c7ab6e75 100644 --- a/Lib/test/test_timeout.py +++ b/Lib/test/test_timeout.py @@ -79,24 +79,24 @@ class CreationTestCase(unittest.TestCase): def testTimeoutThenBlocking(self): # Test settimeout() followed by setblocking() self.sock.settimeout(10) - self.sock.setblocking(1) + self.sock.setblocking(True) self.assertEqual(self.sock.gettimeout(), None) - self.sock.setblocking(0) + self.sock.setblocking(False) self.assertEqual(self.sock.gettimeout(), 0.0) self.sock.settimeout(10) - self.sock.setblocking(0) + self.sock.setblocking(False) self.assertEqual(self.sock.gettimeout(), 0.0) - self.sock.setblocking(1) + self.sock.setblocking(True) self.assertEqual(self.sock.gettimeout(), None) def testBlockingThenTimeout(self): # Test setblocking() followed by settimeout() - self.sock.setblocking(0) + self.sock.setblocking(False) self.sock.settimeout(1) self.assertEqual(self.sock.gettimeout(), 1) - self.sock.setblocking(1) + self.sock.setblocking(True) self.sock.settimeout(1) self.assertEqual(self.sock.gettimeout(), 1) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index d4f2098e1e6f..3548b0c87875 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -146,7 +146,7 @@ recvfrom_into(buffer[, nbytes, [, flags])\n\ sendall(data[, flags]) -- send all data\n\ send(data[, flags]) -- send data, may not send all of it\n\ sendto(data[, flags], addr) -- send data to a given address\n\ -setblocking(0 | 1) -- set or clear the blocking I/O flag\n\ +setblocking(bool) -- set or clear the blocking I/O flag\n\ getblocking() -- return True if socket is blocking, False if non-blocking\n\ setsockopt(level, optname, value[, optlen]) -- set socket options\n\ settimeout(None | float) -- set or clear the timeout\n\