bpo-15999: Always pass bool instead of int to socket.setblocking(). (GH-15621)
This commit is contained in:
parent
eb8974616b
commit
5eca7f3f38
|
@ -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
|
much the same ways. It's just that, if you do it right, your app will be almost
|
||||||
inside-out.
|
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
|
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
|
``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
|
is completely different from ``TCP_NODELAY``), but it's the exact same idea. You
|
||||||
|
|
|
@ -228,7 +228,7 @@ class dispatcher:
|
||||||
if sock:
|
if sock:
|
||||||
# Set to nonblocking just to make sure for cases where we
|
# Set to nonblocking just to make sure for cases where we
|
||||||
# get a socket from a blocking source.
|
# get a socket from a blocking source.
|
||||||
sock.setblocking(0)
|
sock.setblocking(False)
|
||||||
self.set_socket(sock, map)
|
self.set_socket(sock, map)
|
||||||
self.connected = True
|
self.connected = True
|
||||||
# The constructor no longer requires that the socket
|
# 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):
|
def create_socket(self, family=socket.AF_INET, type=socket.SOCK_STREAM):
|
||||||
self.family_and_type = family, type
|
self.family_and_type = family, type
|
||||||
sock = socket.socket(family, type)
|
sock = socket.socket(family, type)
|
||||||
sock.setblocking(0)
|
sock.setblocking(False)
|
||||||
self.set_socket(sock)
|
self.set_socket(sock)
|
||||||
|
|
||||||
def set_socket(self, sock, map=None):
|
def set_socket(self, sock, map=None):
|
||||||
|
|
|
@ -225,7 +225,7 @@ class TestThreadedServer(SocketThread):
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
with self._sock:
|
with self._sock:
|
||||||
self._sock.setblocking(0)
|
self._sock.setblocking(False)
|
||||||
self._run()
|
self._run()
|
||||||
finally:
|
finally:
|
||||||
self._s1.close()
|
self._s1.close()
|
||||||
|
|
|
@ -4597,7 +4597,7 @@ class NonBlockingTCPTests(ThreadedTCPSocketTest):
|
||||||
|
|
||||||
def testAccept(self):
|
def testAccept(self):
|
||||||
# Testing non-blocking accept
|
# Testing non-blocking accept
|
||||||
self.serv.setblocking(0)
|
self.serv.setblocking(False)
|
||||||
|
|
||||||
# connect() didn't start: non-blocking accept() fails
|
# connect() didn't start: non-blocking accept() fails
|
||||||
start_time = time.monotonic()
|
start_time = time.monotonic()
|
||||||
|
@ -4628,7 +4628,7 @@ class NonBlockingTCPTests(ThreadedTCPSocketTest):
|
||||||
# Testing non-blocking recv
|
# Testing non-blocking recv
|
||||||
conn, addr = self.serv.accept()
|
conn, addr = self.serv.accept()
|
||||||
self.addCleanup(conn.close)
|
self.addCleanup(conn.close)
|
||||||
conn.setblocking(0)
|
conn.setblocking(False)
|
||||||
|
|
||||||
# the server didn't send data yet: non-blocking recv() fails
|
# the server didn't send data yet: non-blocking recv() fails
|
||||||
with self.assertRaises(BlockingIOError):
|
with self.assertRaises(BlockingIOError):
|
||||||
|
@ -5698,15 +5698,15 @@ class NonblockConstantTest(unittest.TestCase):
|
||||||
with socket.socket(socket.AF_INET,
|
with socket.socket(socket.AF_INET,
|
||||||
socket.SOCK_STREAM | socket.SOCK_NONBLOCK) as s:
|
socket.SOCK_STREAM | socket.SOCK_NONBLOCK) as s:
|
||||||
self.checkNonblock(s)
|
self.checkNonblock(s)
|
||||||
s.setblocking(1)
|
s.setblocking(True)
|
||||||
self.checkNonblock(s, nonblock=False)
|
self.checkNonblock(s, nonblock=False)
|
||||||
s.setblocking(0)
|
s.setblocking(False)
|
||||||
self.checkNonblock(s)
|
self.checkNonblock(s)
|
||||||
s.settimeout(None)
|
s.settimeout(None)
|
||||||
self.checkNonblock(s, nonblock=False)
|
self.checkNonblock(s, nonblock=False)
|
||||||
s.settimeout(2.0)
|
s.settimeout(2.0)
|
||||||
self.checkNonblock(s, timeout=2.0)
|
self.checkNonblock(s, timeout=2.0)
|
||||||
s.setblocking(1)
|
s.setblocking(True)
|
||||||
self.checkNonblock(s, nonblock=False)
|
self.checkNonblock(s, nonblock=False)
|
||||||
# defaulttimeout
|
# defaulttimeout
|
||||||
t = socket.getdefaulttimeout()
|
t = socket.getdefaulttimeout()
|
||||||
|
|
|
@ -2209,7 +2209,7 @@ class ThreadedEchoServer(threading.Thread):
|
||||||
self.running = False
|
self.running = False
|
||||||
self.sock = connsock
|
self.sock = connsock
|
||||||
self.addr = addr
|
self.addr = addr
|
||||||
self.sock.setblocking(1)
|
self.sock.setblocking(True)
|
||||||
self.sslconn = None
|
self.sslconn = None
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
self.daemon = True
|
self.daemon = True
|
||||||
|
@ -3255,7 +3255,7 @@ class ThreadedTests(unittest.TestCase):
|
||||||
wrapped = False
|
wrapped = False
|
||||||
with server:
|
with server:
|
||||||
s = socket.socket()
|
s = socket.socket()
|
||||||
s.setblocking(1)
|
s.setblocking(True)
|
||||||
s.connect((HOST, server.port))
|
s.connect((HOST, server.port))
|
||||||
if support.verbose:
|
if support.verbose:
|
||||||
sys.stdout.write("\n")
|
sys.stdout.write("\n")
|
||||||
|
|
|
@ -79,24 +79,24 @@ class CreationTestCase(unittest.TestCase):
|
||||||
def testTimeoutThenBlocking(self):
|
def testTimeoutThenBlocking(self):
|
||||||
# Test settimeout() followed by setblocking()
|
# Test settimeout() followed by setblocking()
|
||||||
self.sock.settimeout(10)
|
self.sock.settimeout(10)
|
||||||
self.sock.setblocking(1)
|
self.sock.setblocking(True)
|
||||||
self.assertEqual(self.sock.gettimeout(), None)
|
self.assertEqual(self.sock.gettimeout(), None)
|
||||||
self.sock.setblocking(0)
|
self.sock.setblocking(False)
|
||||||
self.assertEqual(self.sock.gettimeout(), 0.0)
|
self.assertEqual(self.sock.gettimeout(), 0.0)
|
||||||
|
|
||||||
self.sock.settimeout(10)
|
self.sock.settimeout(10)
|
||||||
self.sock.setblocking(0)
|
self.sock.setblocking(False)
|
||||||
self.assertEqual(self.sock.gettimeout(), 0.0)
|
self.assertEqual(self.sock.gettimeout(), 0.0)
|
||||||
self.sock.setblocking(1)
|
self.sock.setblocking(True)
|
||||||
self.assertEqual(self.sock.gettimeout(), None)
|
self.assertEqual(self.sock.gettimeout(), None)
|
||||||
|
|
||||||
def testBlockingThenTimeout(self):
|
def testBlockingThenTimeout(self):
|
||||||
# Test setblocking() followed by settimeout()
|
# Test setblocking() followed by settimeout()
|
||||||
self.sock.setblocking(0)
|
self.sock.setblocking(False)
|
||||||
self.sock.settimeout(1)
|
self.sock.settimeout(1)
|
||||||
self.assertEqual(self.sock.gettimeout(), 1)
|
self.assertEqual(self.sock.gettimeout(), 1)
|
||||||
|
|
||||||
self.sock.setblocking(1)
|
self.sock.setblocking(True)
|
||||||
self.sock.settimeout(1)
|
self.sock.settimeout(1)
|
||||||
self.assertEqual(self.sock.gettimeout(), 1)
|
self.assertEqual(self.sock.gettimeout(), 1)
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ recvfrom_into(buffer[, nbytes, [, flags])\n\
|
||||||
sendall(data[, flags]) -- send all data\n\
|
sendall(data[, flags]) -- send all data\n\
|
||||||
send(data[, flags]) -- send data, may not send all of it\n\
|
send(data[, flags]) -- send data, may not send all of it\n\
|
||||||
sendto(data[, flags], addr) -- send data to a given address\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\
|
getblocking() -- return True if socket is blocking, False if non-blocking\n\
|
||||||
setsockopt(level, optname, value[, optlen]) -- set socket options\n\
|
setsockopt(level, optname, value[, optlen]) -- set socket options\n\
|
||||||
settimeout(None | float) -- set or clear the timeout\n\
|
settimeout(None | float) -- set or clear the timeout\n\
|
||||||
|
|
Loading…
Reference in New Issue