summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-09 09:17:09 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-09 09:17:09 +0000
commita534e39a87b81804ca58dc0b765d338b83f0a96d (patch)
treee45655d0fd5be25e82a27b4c7ed4f44f460216d8
parent71b1673229c57cd44b2ffe79bb094cfb986fbeca (diff)
* thread_{pthread,win32}.c (rb_thread_create_timer_thread): needs more
stack for debug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--thread.c2
-rw-r--r--thread_pthread.c3
-rw-r--r--thread_win32.c3
4 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 45d1b7f064..3fe6f6030f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 9 18:17:06 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * thread_{pthread,win32}.c (rb_thread_create_timer_thread): needs more
+ stack for debug.
+
Wed Jul 9 11:13:39 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/profiler.rb (Profiler__#print_profile): sort in the descending
diff --git a/thread.c b/thread.c
index 5ede10c600..db77e4d28d 100644
--- a/thread.c
+++ b/thread.c
@@ -167,7 +167,7 @@ static void timer_thread_function(void *);
#define DEBUG_OUT() \
pthread_mutex_lock(&debug_mutex); \
- printf("%p - %s", pthread_self(), buf); \
+ printf("%#"PRIxVALUE" - %s", (VALUE)pthread_self(), buf); \
fflush(stdout); \
pthread_mutex_unlock(&debug_mutex);
diff --git a/thread_pthread.c b/thread_pthread.c
index 72a4dae8cb..4787823b3d 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -693,7 +693,8 @@ rb_thread_create_timer_thread(void)
pthread_attr_init(&attr);
#ifdef PTHREAD_STACK_MIN
- pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN);
+ pthread_attr_setstacksize(&attr,
+ PTHREAD_STACK_MIN + (THREAD_DEBUG ? BUFSIZ : 0));
#endif
err = pthread_create(&timer_thread_id, &attr, thread_timer, GET_VM());
if (err != 0) {
diff --git a/thread_win32.c b/thread_win32.c
index 98fcb8d375..a810fb3622 100644
--- a/thread_win32.c
+++ b/thread_win32.c
@@ -555,7 +555,8 @@ void
rb_thread_create_timer_thread(void)
{
if (timer_thread_id == 0) {
- timer_thread_id = w32_create_thread(1024, timer_thread_func, GET_VM());
+ timer_thread_id = w32_create_thread(1024 + (THREAD_DEBUG ? BUFSIZ : 0),
+ timer_thread_func, GET_VM());
w32_resume_thread(timer_thread_id);
}
}