summaryrefslogtreecommitdiffstats
path: root/Python/thread_pthread.h
diff options
context:
space:
mode:
authorHye-Shik Chang <hyeshik@gmail.com>2006-03-23 12:32:36 (GMT)
committerHye-Shik Chang <hyeshik@gmail.com>2006-03-23 12:32:36 (GMT)
commitd478f3453f1219e0e102d2d425550e3774e90d06 (patch)
treee9f9e5ba4e783167b80579ee5aaf64b98bb5d176 /Python/thread_pthread.h
parentdfbd34c80f5b9c0aae3e7a816944e335619feab4 (diff)
downloadcpython-d478f3453f1219e0e102d2d425550e3774e90d06.zip
cpython-d478f3453f1219e0e102d2d425550e3774e90d06.tar.gz
cpython-d478f3453f1219e0e102d2d425550e3774e90d06.tar.bz2
Patch #1396919: Reenable the system scope threads on FreeBSD 5.4
and later versions because they bumped the default setting to get our basic tests to run correctly..
Diffstat (limited to 'Python/thread_pthread.h')
-rw-r--r--Python/thread_pthread.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index 781467f..c29a61c 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -26,6 +26,16 @@
#endif
#endif
+/* Before FreeBSD 5.4, system scope threads was very limited resource
+ in default setting. So the process scope is preferred to get
+ enough number of threads to work. */
+#ifdef __FreeBSD__
+#include <osreldate.h>
+#if __FreeBSD_version >= 500000 && __FreeBSD_version < 504101
+#undef PTHREAD_SYSTEM_SCHED_SUPPORTED
+#endif
+#endif
+
#if !defined(pthread_attr_default)
# define pthread_attr_default ((pthread_attr_t *)NULL)
#endif
@@ -138,7 +148,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
#ifdef THREAD_STACK_SIZE
pthread_attr_setstacksize(&attrs, THREAD_STACK_SIZE);
#endif
-#if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED) && !defined(__FreeBSD__)
+#if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
#endif