From dc9c887319182c290633e8c7f3d6a7106b8ef0d8 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Tue, 9 Feb 2016 15:47:10 -0800 Subject: [PATCH] Raise at least one error for parallel tests. Ideally, we should grab all exceptions raised and let the user see them. For now, at least make sure that the primary test passes. --- skimage/_shared/testing.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/skimage/_shared/testing.py b/skimage/_shared/testing.py index 603cfaaa..776c93f2 100644 --- a/skimage/_shared/testing.py +++ b/skimage/_shared/testing.py @@ -215,10 +215,6 @@ def test_parallel(num_threads=2): num_threads : int, optional The number of times the function is run in parallel. - Notes - ----- - This decorator does not pass the return value of the decorated function. - """ assert num_threads > 0 @@ -227,14 +223,21 @@ def test_parallel(num_threads=2): @functools.wraps(func) def inner(*args, **kwargs): threads = [] - for i in range(num_threads): + for i in range(num_threads - 1): thread = threading.Thread(target=func, args=args, kwargs=kwargs) threads.append(thread) for thread in threads: thread.start() + + result = func(*args, **kwargs) + for thread in threads: thread.join() + + return result + return inner + return wrapper