diff options
author | Danny Smith <dannysmith@users.sourceforge.net> | 2007-10-10 23:39:30 +0000 |
---|---|---|
committer | Danny Smith <dannysmith@gcc.gnu.org> | 2007-10-10 23:39:30 +0000 |
commit | cccc4450ce36f171270c0993e4cb58921c65dda8 (patch) | |
tree | 006ce9f941327d3b9c5e9d5e98f58157eea62c90 | |
parent | b0bb87a862ce1825dc4fd0092a84c6cb626b52fa (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/parallel/compatibility.h | 12 |
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(); |