]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 30_threads / barrier / arrive.cc
CommitLineData
b7c3f201
TR
1// { dg-options "-std=gnu++2a" }
2// { dg-do run { target c++2a } }
3// { dg-require-gthreads "" }
4// { dg-additional-options "-pthread" { target pthread } }
71dc5ae5 5// { dg-add-options libatomic }
b7c3f201 6
83ffe9cd 7// Copyright (C) 2020-2023 Free Software Foundation, Inc.
b7c3f201
TR
8//
9// This file is part of the GNU ISO C++ Library. This library is free
10// software; you can redistribute it and/or modify it under the
11// terms of the GNU General Public License as published by the
12// Free Software Foundation; either version 3, or (at your option)
13// any later version.
14
15// This library is distributed in the hope that it will be useful,
16// but WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License for more details.
19
20// You should have received a copy of the GNU General Public License along
21// with this library; see the file COPYING3. If not see
22// <http://www.gnu.org/licenses/>.
23
24// This test is based on libcxx/test/std/thread/thread.barrier/arrive.pass.cpp
25//===----------------------------------------------------------------------===//
26//
27// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
28// See https://llvm.org/LICENSE.txt for license information.
29// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
30//
31//===----------------------------------------------------------------------===//
32
33#include <barrier>
34#include <thread>
35
36int main(int, char**)
37{
38 std::barrier<> b(2);
39
40 auto tok = b.arrive();
41 std::thread t([&](){
42 (void)b.arrive();
43 });
44 b.wait(std::move(tok));
45 t.join();
46
47 auto tok2 = b.arrive(2);
48 b.wait(std::move(tok2));
49}