From 2a54b70d45f8562bcb7f9f7d669e2f20ea60b3f5 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Thu, 12 May 2016 11:45:48 -0700 Subject: Fixed potential race condition in the non blocking thread pool --- unsupported/test/cxx11_non_blocking_thread_pool.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'unsupported/test/cxx11_non_blocking_thread_pool.cpp') diff --git a/unsupported/test/cxx11_non_blocking_thread_pool.cpp b/unsupported/test/cxx11_non_blocking_thread_pool.cpp index 02ffa57cc..6569218c4 100644 --- a/unsupported/test/cxx11_non_blocking_thread_pool.cpp +++ b/unsupported/test/cxx11_non_blocking_thread_pool.cpp @@ -12,6 +12,16 @@ #include "main.h" #include "Eigen/CXX11/ThreadPool" +static void test_create_destroy_empty_pool() +{ + // Just create and destroy the pool. This will wind up and tear down worker + // threads. Ensure there are no issues in that logic. + for (int i = 0; i < 16; ++i) { + NonBlockingThreadPool tp(i); + } +} + + static void test_parallelism() { // Test we never-ever fail to match available tasks with idle threads. @@ -87,5 +97,6 @@ static void test_parallelism() void test_cxx11_non_blocking_thread_pool() { + CALL_SUBTEST(test_create_destroy_empty_pool()); CALL_SUBTEST(test_parallelism()); } -- cgit v1.2.3