Patchwork Fix libstdc++/45283

login
register
mail settings
Submitter Jonathan Wakely
Date Aug. 14, 2010, 8:03 p.m.
Message ID <AANLkTi=TL7RAsgg4d0+_MxCpgebUj2hC7ru+7oxRCquJ@mail.gmail.com>
Download mbox | patch
Permalink /patch/61736/
State New
Headers show

Comments

Jonathan Wakely - Aug. 14, 2010, 8:03 p.m.
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.

Tested x86_64/Linux and checked in to trunk.
I'll check in to 4.5 too after testing finishes.

Patch

Index: testsuite/performance/30_threads/future/polling.cc
===================================================================
--- testsuite/performance/30_threads/future/polling.cc	(revision 163241)
+++ testsuite/performance/30_threads/future/polling.cc	(working copy)
@@ -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)