diff options
Diffstat (limited to 'www/kannel/files/patch-gwlib__gwthread-pthread.c')
-rw-r--r-- | www/kannel/files/patch-gwlib__gwthread-pthread.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/www/kannel/files/patch-gwlib__gwthread-pthread.c b/www/kannel/files/patch-gwlib__gwthread-pthread.c new file mode 100644 index 000000000000..d9166178c14a --- /dev/null +++ b/www/kannel/files/patch-gwlib__gwthread-pthread.c @@ -0,0 +1,45 @@ +--- gwlib/gwthread-pthread.c.orig Thu Aug 12 19:53:30 2004 ++++ gwlib/gwthread-pthread.c Mon Dec 20 00:53:57 2004 +@@ -125,6 +125,11 @@ + static pthread_key_t tsd_key; + + static pthread_mutex_t threadtable_lock; ++/* ++ * Thread creation parameters. ++ */ ++static pthread_attr_t thread_attr; ++#define MIN_THREAD_STACK_SIZE (256 * 1024) + + static void lock(void) + { +@@ -263,6 +268,7 @@ + { + int ret; + int i; ++ size_t stack_size; + + pthread_mutex_init(&threadtable_lock, NULL); + +@@ -275,6 +281,13 @@ + threadtable[i] = NULL; + } + active_threads = 0; ++/* ++ * Make sure that thread stack is large enough. ++ */ ++ pthread_attr_init(&thread_attr); ++ pthread_attr_getstacksize(&thread_attr, &stack_size); ++ if (stack_size < MIN_THREAD_STACK_SIZE) ++ pthread_attr_setstacksize(&thread_attr, MIN_THREAD_STACK_SIZE); + + create_threadinfo_main(); + } +@@ -443,7 +456,7 @@ + return -1; + } + +- ret = pthread_create(&id, NULL, &new_thread, p); ++ ret = pthread_create(&id, &thread_attr, &new_thread, p); + if (ret != 0) { + unlock(); + error(ret, "Could not create new thread."); |