From dfc33fd8db811feea2bfb974e9da3ed7aea4b10d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Tue, 21 Jan 2003 10:14:41 +0000 Subject: Don't use Posix semaphores on Solaris 8. Fixes #662787. --- Python/thread_pthread.h | 2 +- configure | 11 ++++++++++- configure.in | 6 ++++++ 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 diff --git a/configure b/configure index df432d8..c94f2a1 100755 --- a/configure +++ b/configure @@ -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 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 -- cgit v0.12