+ private:
+ std::thread fThread = {};
+};
+
+
+class IntlTest;
+
+// ThreadPool - utililty class to simplify the spawning a group of threads by
+// a multi-threaded test.
+//
+// Usage: from within an intltest test function,
+// ThreadPool<TestClass> pool(
+// this, // The current intltest test object,
+// // of type "TestClass *"
+// numberOfThreads, // How many threads to spawn.
+// &TestClass::func); // The function to be run by each thread.
+// // It takes one int32_t parameter which
+// // is set to the thread number, 0 to numberOfThreads-1.
+//
+// pool.start(); // Start all threads running.
+// pool.join(); // Wait until all threads have terminated.
+
+class ThreadPoolBase {
+ public:
+ ThreadPoolBase(IntlTest *test, int32_t numThreads);
+ virtual ~ThreadPoolBase();
+
+ void start();
+ void join();