From 205d072f694fe0e9c9dc18a2da9c74bf5151ef57 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Sun, 13 Dec 2015 04:14:39 +0000 Subject: Revert r255444. It doesn't build on Windows and broke the Windows LLD and LLDB bots: http://lab.llvm.org:8011/builders/lld-x86_64-win7/builds/27693/steps/build_Lld/logs/stdio http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc/builds/13468/steps/build/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255446 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/Support/CMakeLists.txt | 1 - unittests/Support/ThreadPool.cpp | 91 ---------------------------------------- 2 files changed, 92 deletions(-) delete mode 100644 unittests/Support/ThreadPool.cpp (limited to 'unittests') diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt index 9bd685759ed..fd8324c836d 100644 --- a/unittests/Support/CMakeLists.txt +++ b/unittests/Support/CMakeLists.txt @@ -41,7 +41,6 @@ add_llvm_unittest(SupportTests SwapByteOrderTest.cpp TargetRegistry.cpp ThreadLocalTest.cpp - ThreadPool.cpp TimeValueTest.cpp TrailingObjectsTest.cpp UnicodeTest.cpp diff --git a/unittests/Support/ThreadPool.cpp b/unittests/Support/ThreadPool.cpp deleted file mode 100644 index d36341e425d..00000000000 --- a/unittests/Support/ThreadPool.cpp +++ /dev/null @@ -1,91 +0,0 @@ -//========- unittests/Support/ThreadPools.cpp - ThreadPools.h tests --========// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "llvm/Support/ThreadPool.h" - -#include "llvm/ADT/STLExtras.h" - -#include "gtest/gtest.h" - -using namespace llvm; -using namespace std::chrono; - -/// Try best to make this thread not progress faster than the main thread -static void yield() { -#ifdef LLVM_ENABLE_THREADS - std::this_thread::yield(); -#endif - std::this_thread::sleep_for(milliseconds(200)); -#ifdef LLVM_ENABLE_THREADS - std::this_thread::yield(); -#endif -} - -TEST(ThreadPoolTest, AsyncBarrier) { - // test that async & barrier work together properly. - - std::atomic_int checked_in{0}; - - ThreadPool Pool; - for (size_t i = 0; i < 5; ++i) { - Pool.async([&checked_in, i] { - yield(); - ++checked_in; - }); - } - ASSERT_EQ(0, checked_in); - Pool.wait(); - ASSERT_EQ(5, checked_in); -} - -TEST(ThreadPoolTest, Async) { - ThreadPool Pool; - std::atomic_int i{0}; - // sleep here just to ensure that the not-equal is correct. - Pool.async([&i] { - yield(); - ++i; - }); - Pool.async([&i] { ++i; }); - ASSERT_NE(2, i.load()); - Pool.wait(); - ASSERT_EQ(2, i.load()); -} - -TEST(ThreadPoolTest, GetFuture) { - ThreadPool Pool; - std::atomic_int i{0}; - // sleep here just to ensure that the not-equal is correct. - Pool.async([&i] { - yield(); - ++i; - }); - // Force the future using get() - Pool.async([&i] { ++i; }).get(); - ASSERT_NE(2, i.load()); - Pool.wait(); - ASSERT_EQ(2, i.load()); -} - -TEST(ThreadPoolTest, PoolDestruction) { - // Test that we are waiting on destruction - std::atomic_int checked_in{0}; - - { - ThreadPool Pool; - for (size_t i = 0; i < 5; ++i) { - Pool.async([&checked_in, i] { - yield(); - ++checked_in; - }); - } - ASSERT_EQ(0, checked_in); - } - ASSERT_EQ(5, checked_in); -} -- cgit v1.2.3