]> granicus.if.org Git - python/commitdiff
Avoid ResourceWarnings in ccbench
authorAntoine Pitrou <solipsis@pitrou.net>
Sat, 15 Jan 2011 11:39:23 +0000 (11:39 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Sat, 15 Jan 2011 11:39:23 +0000 (11:39 +0000)
Tools/ccbench/ccbench.py

index 569ec217e4286880e527aa68e8fe33af12a98f61..02b192f487778ba1cc6a465d613c339554afe365 100644 (file)
@@ -276,19 +276,19 @@ def _recv(sock, n):
     return sock.recv(n).decode('ascii')
 
 def latency_client(addr, nb_pings, interval):
-    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    _time = time.time
-    _sleep = time.sleep
-    def _ping():
-        _sendto(sock, "%r\n" % _time(), addr)
-    # The first ping signals the parent process that we are ready.
-    _ping()
-    # We give the parent a bit of time to notice.
-    _sleep(1.0)
-    for i in range(nb_pings):
-        _sleep(interval)
+    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
+        _time = time.time
+        _sleep = time.sleep
+        def _ping():
+            _sendto(sock, "%r\n" % _time(), addr)
+        # The first ping signals the parent process that we are ready.
         _ping()
-    _sendto(sock, LAT_END + "\n", addr)
+        # We give the parent a bit of time to notice.
+        _sleep(1.0)
+        for i in range(nb_pings):
+            _sleep(interval)
+            _ping()
+        _sendto(sock, LAT_END + "\n", addr)
 
 def run_latency_client(**kwargs):
     cmd_line = [sys.executable, '-E', os.path.abspath(__file__)]
@@ -363,6 +363,7 @@ def run_latency_test(func, args, nthreads):
     for t in threads:
         t.join()
     process.wait()
+    sock.close()
 
     for recv_time, chunk in chunks:
         # NOTE: it is assumed that a line sent by a client wasn't received