diff options
Diffstat (limited to 'test/std/thread/thread.condition/thread.condition.condvar/wait_pred.pass.cpp')
| -rw-r--r-- | test/std/thread/thread.condition/thread.condition.condvar/wait_pred.pass.cpp | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/test/std/thread/thread.condition/thread.condition.condvar/wait_pred.pass.cpp b/test/std/thread/thread.condition/thread.condition.condvar/wait_pred.pass.cpp deleted file mode 100644 index 45e0b81241656..0000000000000 --- a/test/std/thread/thread.condition/thread.condition.condvar/wait_pred.pass.cpp +++ /dev/null @@ -1,62 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// UNSUPPORTED: libcpp-has-no-threads - -// <condition_variable> - -// class condition_variable; - -// template <class Predicate> -// void wait(unique_lock<mutex>& lock, Predicate pred); - -#include <condition_variable> -#include <mutex> -#include <thread> -#include <functional> -#include <cassert> - -std::condition_variable cv; -std::mutex mut; - -int test1 = 0; -int test2 = 0; - -class Pred -{ - int& i_; -public: - explicit Pred(int& i) : i_(i) {} - - bool operator()() {return i_ != 0;} -}; - -void f() -{ - std::unique_lock<std::mutex> lk(mut); - assert(test2 == 0); - test1 = 1; - cv.notify_one(); - cv.wait(lk, Pred(test2)); - assert(test2 != 0); -} - -int main() -{ - std::unique_lock<std::mutex>lk(mut); - std::thread t(f); - assert(test1 == 0); - while (test1 == 0) - cv.wait(lk); - assert(test1 != 0); - test2 = 1; - lk.unlock(); - cv.notify_one(); - t.join(); -} |
