diff options
-rw-r--r-- | Python/thread_pthread.h | 2 | ||||
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | configure.in | 6 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
4 files changed, 20 insertions, 2 deletions
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 8067121..e30982f 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -104,7 +104,7 @@ /* Whether or not to use semaphores directly rather than emulating them with * mutexes and condition variables: */ -#ifdef _POSIX_SEMAPHORES +#if defined(_POSIX_SEMAPHORES) && !defined(HAVE_BROKEN_POSIX_SEMAPHORES) # define USE_SEMAPHORES #else # undef USE_SEMAPHORES @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.385 . +# From configure.in Revision: 1.386 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. # @@ -11132,6 +11132,15 @@ _ACEOF fi + # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. + case $ac_sys_system/$ac_sys_release in + SunOS/5.8) +cat >>confdefs.h <<\_ACEOF +#define HAVE_BROKEN_POSIX_SEMAPHORES 1 +_ACEOF +;; + esac + echo "$as_me:$LINENO: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 echo $ECHO_N "checking if PTHREAD_SCOPE_SYSTEM is supported... $ECHO_C" >&6 if test "${ac_cv_pthread_system_supported+set}" = set; then diff --git a/configure.in b/configure.in index c8ba86b..8011c97 100644 --- a/configure.in +++ b/configure.in @@ -1447,6 +1447,12 @@ pthread_create (NULL, NULL, start_routine, NULL)], [ and your system does not define that.]) fi + # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. + case $ac_sys_system/$ac_sys_release in + SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1, + Define if the Posix semaphores do not work on your system);; + esac + AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported) AC_CACHE_VAL(ac_cv_pthread_system_supported, [AC_TRY_RUN([#include <pthread.h> diff --git a/pyconfig.h.in b/pyconfig.h.in index 3627b83..dea4722 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -44,6 +44,9 @@ /* Define if nice() returns success/failure instead of the new priority. */ #undef HAVE_BROKEN_NICE +/* Define if the Posix semaphores do not work on your system */ +#undef HAVE_BROKEN_POSIX_SEMAPHORES + /* Define to 1 if you have the `chown' function. */ #undef HAVE_CHOWN |