aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2007-10-10 23:39:30 +0000
committerDanny Smith <dannysmith@gcc.gnu.org>2007-10-10 23:39:30 +0000
commitcccc4450ce36f171270c0993e4cb58921c65dda8 (patch)
tree006ce9f941327d3b9c5e9d5e98f58157eea62c90
parentb0bb87a862ce1825dc4fd0092a84c6cb626b52fa (diff)
downloadgcc-cccc4450ce36f171270c0993e4cb58921c65dda8.zip
gcc-cccc4450ce36f171270c0993e4cb58921c65dda8.tar.gz
gcc-cccc4450ce36f171270c0993e4cb58921c65dda8.tar.bz2
re PR libstdc++/33578 (__gnu_parallel::yield means what?)
PR libstdc++/33578 * include/parallel/compatibility.h. Use POSIX sched_yield on __CYGWIN__ (Sleep): Add prototype for __MINGW32__. From-SVN: r129219
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/parallel/compatibility.h12
2 files changed, 17 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3b4e028..cce3db1 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2007-10-11 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR libstdc++/33578
+ * include/parallel/compatibility.h. Use POSIX sched_yield on
+ __CYGWIN__
+ (Sleep): Add prototype for __MINGW32__.
+
2007-10-10 Jason Merrill <jason@redhat.com>
* libsupc++/guard.cc (struct mutex_wrapper): Move into
diff --git a/libstdc++-v3/include/parallel/compatibility.h b/libstdc++-v3/include/parallel/compatibility.h
index ec0c053..cf8e318 100644
--- a/libstdc++-v3/include/parallel/compatibility.h
+++ b/libstdc++-v3/include/parallel/compatibility.h
@@ -45,7 +45,7 @@
#include <sys/atomic.h>
#endif
-#if !defined(_WIN32)
+#if !defined(_WIN32) || defined (__CYGWIN__)
#include <sched.h>
#endif
@@ -56,6 +56,14 @@
#undef min
#endif
+#ifdef __MINGW32__
+// Including <windows.h> will drag in all the windows32 names. Since
+// that can cause user code portability problems, we just declare the
+// one needed function here.
+extern "C"
+__attribute((dllimport)) void __attribute__((stdcall)) Sleep (unsigned long);
+#endif
+
namespace __gnu_parallel
{
#if defined(__ICC)
@@ -327,7 +335,7 @@ namespace __gnu_parallel
inline void
yield()
{
-#ifdef _WIN32
+#if defined (_WIN32) && !defined (__CYGWIN__)
Sleep(0);
#else
sched_yield();