summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Python/thread.c1
-rw-r--r--Python/thread_pth.h7
2 files changed, 7 insertions, 1 deletions
diff --git a/Python/thread.c b/Python/thread.c
index 87230e0..2298b38 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -98,6 +98,7 @@ void PyThread_init_thread(void)
#ifdef HAVE_PTH
#include "thread_pth.h"
+#undef _POSIX_THREADS
#endif
#ifdef _POSIX_THREADS
diff --git a/Python/thread_pth.h b/Python/thread_pth.h
index 3b97981..8c7dbe9 100644
--- a/Python/thread_pth.h
+++ b/Python/thread_pth.h
@@ -30,6 +30,8 @@ typedef struct {
#define CHECK_STATUS(name) if (status == -1) { printf("%d ", status); perror(name); error = 1; }
+pth_attr_t PyThread_attr;
+
/*
* Initialization.
*/
@@ -37,6 +39,9 @@ typedef struct {
static void PyThread__init_thread(void)
{
pth_init();
+ PyThread_attr = pth_attr_new();
+ pth_attr_set(PyThread_attr, PTH_ATTR_STACK_SIZE, 1<<18);
+ pth_attr_set(PyThread_attr, PTH_ATTR_JOINABLE, FALSE);
}
/*
@@ -51,7 +56,7 @@ long PyThread_start_new_thread(void (*func)(void *), void *arg)
if (!initialized)
PyThread_init_thread();
- th = pth_spawn(PTH_ATTR_DEFAULT,
+ th = pth_spawn(PyThread_attr,
(void* (*)(void *))func,
(void *)arg
);