]> granicus.if.org Git - python/commitdiff
Patch #1396919: Reenable the system scope threads on FreeBSD 5.4
authorHye-Shik Chang <hyeshik@gmail.com>
Thu, 23 Mar 2006 12:32:36 +0000 (12:32 +0000)
committerHye-Shik Chang <hyeshik@gmail.com>
Thu, 23 Mar 2006 12:32:36 +0000 (12:32 +0000)
and later versions because they bumped the default setting to
get our basic tests to run correctly..

Misc/NEWS
Python/thread_pthread.h

index f41f23737f223a81205968cd4421b30e7d8bf926..402d075e3e676f926af6c8d4cc88bc48f17fd4f7 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@ What's New in Python 2.5 alpha 1?
 Core and builtins
 -----------------
 
+- Patch #1396919: The system scope threads are reenabled on FreeBSD
+  5.4 and later versions.
+
 - Bug #1115379: Compiling a Unicode string with an encoding declaration
   now gives a SyntaxError.
 
index 781467f84bed69c25a968426a2f3e1b658b2d5f7..c29a61c809a2a2ca110ee290b90e663f12f51d02 100644 (file)
 #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