Dave Korn wrote: > Casull wrote: >> The GCC 4.4 implementation of std::thread is guarded by the >> following preprocessing directive: >> >> #if defined(_GLIBCXX_HAS_GTHREADS) && >> defined(_GLIBCXX_USE_C99_STDINT_TR1) >> >> When looking at the bits/c++config.h, _GLIBCXX_USE_C99_STDINT_TR1 is defined >> but _GLIBCXX_HAS_GTHREADS isn't. > > Ah. There is an autoconf test in libstdc++-v3 that defines that, and the > comment says: > >> dnl Check if gthread implementation defines the types and functions >> dnl required by the c++0x thread library. Conforming gthread >> dnl implementations can define __GTHREADS_CXX0X to enable use with c++0x.
It fails because : // In case of POSIX threads check _POSIX_TIMEOUTS too. #if (defined(_PTHREADS) && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) #error #endif ... we don't have any definition of _POSIX_TIMEOUTS. That's a feature test macro the exact definition of which I haven't found yet, but from libstdc's point of view, it appears to mean that the pthread_mutex_timedlock function is supported. Which indeed Cygwin doesn't currently implement. http://www.opengroup.org/onlinepubs/009695399/functions/pthread_mutex_timedlock.html Looks like it wouldn't be too hard to add, PTC I suppose. cheers, DaveK -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/