]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 29_atomics / atomic_flag / wait_notify / 1.cc
CommitLineData
62d19588 1// { dg-options "-std=gnu++2a" }
83a1beee 2// { dg-do run { target c++2a } }
83a1beee 3// { dg-require-gthreads "" }
62d19588 4// { dg-additional-options "-pthread" { target pthread } }
71dc5ae5 5// { dg-add-options libatomic }
83a1beee 6
83ffe9cd 7// Copyright (C) 2020-2023 Free Software Foundation, Inc.
83a1beee
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#include <atomic>
83a1beee
TR
25#include <thread>
26
27#include <testsuite_hooks.h>
28
29int
30main()
31{
83a1beee 32 std::atomic_flag a;
b52aef3a
TR
33 VERIFY( !a.test() );
34 a.wait(true);
83a1beee 35 std::thread t([&]
b52aef3a
TR
36 {
37 a.test_and_set();
38 a.notify_one();
39 });
40 a.wait(false);
83a1beee 41 t.join();
83a1beee
TR
42 return 0;
43}