blob: 943fc84306ae6a00376ebb80a4efc8b4d8aadce8 [file] [log] [blame]
Olivier Giroux54fa9ec2020-02-18 09:58:34 -05001//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// UNSUPPORTED: libcpp-has-no-threads
10// UNSUPPORTED: c++98, c++03, c++11
11
12// <barrier>
13
14#include <barrier>
15#include <thread>
16
17#include "test_macros.h"
18
19int main(int, char**)
20{
21 std::barrier<> b(2);
22
23 auto tok = b.arrive();
24 std::thread t([&](){
25 (void)b.arrive();
26 });
27 b.wait(std::move(tok));
28 t.join();
29
30 auto tok2 = b.arrive(2);
31 b.wait(std::move(tok2));
32 return 0;
33}