summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
ca5c277)
Remove all checks that required main thread to run faster than tasks in
ThreadPool, and yields which are now unnecessary. This should fix some
bot failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256056
91177308-0d34-0410-b5e6-
96231b3b80d8
#include "gtest/gtest.h"
using namespace llvm;
#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
-}
// Fixture for the unittests, allowing to *temporarily* disable the unittests
// on a particular platform
// Fixture for the unittests, allowing to *temporarily* disable the unittests
// on a particular platform
ThreadPool Pool;
for (size_t i = 0; i < 5; ++i) {
Pool.async([&checked_in, i] {
ThreadPool Pool;
for (size_t i = 0; i < 5; ++i) {
Pool.async([&checked_in, i] {
- ASSERT_EQ(0, checked_in);
Pool.wait();
ASSERT_EQ(5, checked_in);
}
Pool.wait();
ASSERT_EQ(5, checked_in);
}
CHECK_UNSUPPORTED();
ThreadPool Pool;
std::atomic_int i{0};
CHECK_UNSUPPORTED();
ThreadPool Pool;
std::atomic_int i{0};
- // sleep here just to ensure that the not-equal is correct.
++i;
});
Pool.async([&i] { ++i; });
++i;
});
Pool.async([&i] { ++i; });
- ASSERT_NE(2, i.load());
Pool.wait();
ASSERT_EQ(2, i.load());
}
Pool.wait();
ASSERT_EQ(2, i.load());
}
CHECK_UNSUPPORTED();
ThreadPool Pool;
std::atomic_int i{0};
CHECK_UNSUPPORTED();
ThreadPool Pool;
std::atomic_int i{0};
- // sleep here just to ensure that the not-equal is correct.
++i;
});
// Force the future using get()
Pool.async([&i] { ++i; }).get();
++i;
});
// Force the future using get()
Pool.async([&i] { ++i; }).get();
- ASSERT_NE(2, i.load());
Pool.wait();
ASSERT_EQ(2, i.load());
}
Pool.wait();
ASSERT_EQ(2, i.load());
}
ThreadPool Pool;
for (size_t i = 0; i < 5; ++i) {
Pool.async([&checked_in, i] {
ThreadPool Pool;
for (size_t i = 0; i < 5; ++i) {
Pool.async([&checked_in, i] {
- ASSERT_EQ(0, checked_in);
}
ASSERT_EQ(5, checked_in);
}
}
ASSERT_EQ(5, checked_in);
}