From 73571bf1e205b3428f404297d19b9ad936dc36a1 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <jwakely.gcc@gmail.com>
Date: Sat, 14 Aug 2010 20:00:55 +0000
Subject: [PATCH] re PR libstdc++/45283
 (performance/30_threads/future/polling.cc fails at compile time)

2010-08-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/45283
	* testsuite/performance/30_threads/future/polling.cc: Replace calls to
	shared_future::is_ready.

From-SVN: r163250
---
 libstdc++-v3/ChangeLog                                |  6 ++++++
 .../performance/30_threads/future/polling.cc          | 11 ++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 115679e5e4da..ca4d305e1b9f 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2010-08-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	PR libstdc++/45283
+	* testsuite/performance/30_threads/future/polling.cc: Replace calls to
+	shared_future::is_ready.
+
 2010-08-13  Paolo Carlini  <paolo.carlini@oracle.com>
 
 	* include/bits/hashtable.h (_Hashtable<>::operator=(const
diff --git a/libstdc++-v3/testsuite/performance/30_threads/future/polling.cc b/libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
index 50d622c41a6e..83fde27100f7 100644
--- a/libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
+++ b/libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2009 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -20,9 +20,14 @@
 #include <thread>
 #include <testsuite_performance.h>
 
+inline bool is_ready(std::shared_future<void>& f)
+{
+  return f.wait_for(std::chrono::microseconds(1));
+}
+
 void poll(std::shared_future<void> f)
 {
-  while (!f.is_ready())
+  while (!is_ready(f))
   { }
 }
 
@@ -46,7 +51,7 @@ int main()
   start_counters(time, resource);
 
   for (int i = 0; i < 1000000; ++i)
-    (void)f.is_ready();
+    (void)is_ready(f);
   p.set_value();
 
   for (int i=0; i < n; ++i)
-- 
GitLab