summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Python/thread_pthread.h2
-rwxr-xr-xconfigure11
-rw-r--r--configure.in6
-rw-r--r--pyconfig.h.in3
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 <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