summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_hashlib.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2017-09-14 15:43:22 (GMT)
committerGitHub <noreply@github.com>2017-09-14 15:43:22 (GMT)
commit8dcf22f442320e4c1a5408e67b4c9002ad105f17 (patch)
tree4bb67ff1ff3d507db3e9a20d72e2e162fb32e205 /Lib/test/test_hashlib.py
parent18e95b4176256f100429a806d0455406df98f984 (diff)
downloadcpython-8dcf22f442320e4c1a5408e67b4c9002ad105f17.zip
cpython-8dcf22f442320e4c1a5408e67b4c9002ad105f17.tar.gz
cpython-8dcf22f442320e4c1a5408e67b4c9002ad105f17.tar.bz2
bpo-31234: Join threads in test_hashlib (#3573)
* bpo-31234: Join threads in test_hashlib Use thread.join() to wait until the parallel hash tasks complete rather than using events. Calling thread.join() prevent "dangling thread" warnings. * test_hashlib: minor PEP 8 coding style fixes
Diffstat (limited to 'Lib/test/test_hashlib.py')
-rw-r--r--Lib/test/test_hashlib.py26
1 files changed, 13 insertions, 13 deletions
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
index 5c8f090..90e6a56 100644
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -746,28 +746,28 @@ class HashLibTestCase(unittest.TestCase):
hasher = hashlib.sha1()
num_threads = 5
smallest_data = b'swineflu'
- data = smallest_data*200000
+ data = smallest_data * 200000
expected_hash = hashlib.sha1(data*num_threads).hexdigest()
- def hash_in_chunks(chunk_size, event):
+ def hash_in_chunks(chunk_size):
index = 0
while index < len(data):
- hasher.update(data[index:index+chunk_size])
+ hasher.update(data[index:index + chunk_size])
index += chunk_size
- event.set()
- events = []
+ threads = []
for threadnum in range(num_threads):
- chunk_size = len(data) // (10**threadnum)
+ chunk_size = len(data) // (10 ** threadnum)
self.assertGreater(chunk_size, 0)
self.assertEqual(chunk_size % len(smallest_data), 0)
- event = threading.Event()
- events.append(event)
- threading.Thread(target=hash_in_chunks,
- args=(chunk_size, event)).start()
-
- for event in events:
- event.wait()
+ thread = threading.Thread(target=hash_in_chunks,
+ args=(chunk_size,))
+ threads.append(thread)
+
+ for thread in threads:
+ thread.start()
+ for thread in threads:
+ thread.join()
self.assertEqual(expected_hash, hasher.hexdigest())