diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-09-14 15:43:22 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-14 15:43:22 (GMT) |
commit | 8dcf22f442320e4c1a5408e67b4c9002ad105f17 (patch) | |
tree | 4bb67ff1ff3d507db3e9a20d72e2e162fb32e205 /Lib/test/test_hashlib.py | |
parent | 18e95b4176256f100429a806d0455406df98f984 (diff) | |
download | cpython-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.py | 26 |
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()) |