]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/30_threads/async/54297.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 30_threads / async / 54297.cc
CommitLineData
fb211fce 1// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* *-*-solaris* *-*-cygwin *-*-rtems* *-*-darwin* powerpc-ibm-aix* } }
8868286e 2// { dg-options " -std=gnu++11 -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* powerpc-ibm-aix* } }
3// { dg-options " -std=gnu++11 -pthreads" { target *-*-solaris* } }
fb211fce 4// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
dd4f6b0f 5// { dg-require-cstdint "" }
6// { dg-require-gthreads "" }
7// { dg-require-atomic-builtins "" }
a2bb721d 8// { dg-require-sleep "" }
dd4f6b0f 9
f1717362 10// Copyright (C) 2012-2016 Free Software Foundation, Inc.
dd4f6b0f 11//
12// This file is part of the GNU ISO C++ Library. This library is free
13// software; you can redistribute it and/or modify it under the
14// terms of the GNU General Public License as published by the
15// Free Software Foundation; either version 3, or (at your option)
16// any later version.
17
18// This library is distributed in the hope that it will be useful,
19// but WITHOUT ANY WARRANTY; without even the implied warranty of
20// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21// GNU General Public License for more details.
22
23// You should have received a copy of the GNU General Public License along
24// with this library; see the file COPYING3. If not see
25// <http://www.gnu.org/licenses/>.
26
27#include <chrono>
28#include <thread>
29#include <future>
30#include <set>
31#include <testsuite_hooks.h>
32
33struct Task;
34
35std::set<const Task*> dead_tasks;
36
37struct Task
38{
39 ~Task() { dead_tasks.insert(this); }
40
41 void operator()() const
42 {
43 std::this_thread::sleep_for(std::chrono::seconds(1));
44 VERIFY( dead_tasks.count(this) == 0 );
45 }
46};
47
48int main()
49{
50 std::async(std::launch::async, Task());
51}