1 // { dg-do run } 2 // { dg-options "-pthread" } 3 // { dg-require-effective-target c++11 } 4 // { dg-require-effective-target pthread } 5 // { dg-require-cstdint "" } 6 // { dg-require-gthreads "" } 7 8 // Copyright (C) 2009-2018 Free Software Foundation, Inc. 9 // 10 // This file is part of the GNU ISO C++ Library. This library is free 11 // software; you can redistribute it and/or modify it under the 12 // terms of the GNU General Public License as published by the 13 // Free Software Foundation; either version 3, or (at your option) 14 // any later version. 15 16 // This library is distributed in the hope that it will be useful, 17 // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 // GNU General Public License for more details. 20 21 // You should have received a copy of the GNU General Public License along 22 // with this library; see the file COPYING3. If not see 23 // <http://www.gnu.org/licenses/>. 24 25 26 #include <future> 27 #include <testsuite_hooks.h> 28 test01()29void test01() 30 { 31 std::promise<int> p1; 32 std::promise<int> p2; 33 p1.set_value(1); 34 p1.swap(p2); 35 auto delay = std::chrono::milliseconds(1); 36 VERIFY( p1.get_future().wait_for(delay) == std::future_status::timeout ); 37 VERIFY( p2.get_future().wait_for(delay) == std::future_status::ready ); 38 } 39 main()40int main() 41 { 42 test01(); 43 return 0; 44 } 45