diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | bootstraptest/test_thread.rb | 7 | ||||
-rw-r--r-- | thread.c | 2 |
3 files changed, 13 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Fri Jan 18 23:49:41 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * thread.c (thread_create_core): set thread group before creating + thread. + Fri Jan 18 20:19:51 2008 NAKAMURA Usaku <usa@ruby-lang.org> * parse.y (ripper_initialize): too early to set parser->enc. diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb index 9711535d72..7810455c87 100644 --- a/bootstraptest/test_thread.rb +++ b/bootstraptest/test_thread.rb @@ -160,6 +160,13 @@ assert_equal %q{[1, 1]}, %q{ sleep 0.1 [thg.list.size, ThreadGroup::Default.list.size] } +assert_equal %q{true}, %q{ + thg = ThreadGroup.new + + t = Thread.new{sleep 5} + thg.add t + thg.list.include?(t) +} assert_equal %q{[true, nil, true]}, %q{ /a/ =~ 'a' $a = $~ @@ -302,7 +302,6 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s #ifdef __ia64 th->machine_register_stack_start = register_stack_start; #endif - th->thgroup = th->vm->thgroup_default; thread_debug("thread start: %p\n", th); native_mutex_lock(&th->vm->global_interpreter_lock); @@ -383,6 +382,7 @@ thread_create_core(VALUE thval, VALUE args, VALUE (*fn)(ANYARGS)) th->first_func = fn; th->priority = GET_THREAD()->priority; + th->thgroup = th->vm->thgroup_default; native_mutex_initialize(&th->interrupt_lock); /* kick thread */ |