1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* thread.c (thread_start_func_2): check deadlock condition before

release thread stack. fix memory violation when deadlock detected.
	  reported by Max Aller. [Bug #4009] [ruby-core:32982]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2011-01-31 12:40:19 +00:00
parent d07940ee13
commit a2ba50d971
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,9 @@
Mon Jan 31 21:32:44 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
* thread.c (thread_start_func_2): check deadlock condition before
release thread stack. fix memory violation when deadlock detected.
reported by Max Aller. [Bug #4009] [ruby-core:32982]
Mon Jan 31 14:45:47 2011 Yuki Sonoda (Yugui) <yugui@yugui.jp>
* lib/irb/locale.rb (IRB::Locale::#search_file):

View file

@ -524,13 +524,14 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
join_th = join_th->join_list_next;
}
thread_unlock_all_locking_mutexes(th);
if (th != main_th) rb_check_deadlock(th->vm);
if (!th->root_fiber) {
rb_thread_recycle_stack_release(th->stack);
th->stack = 0;
}
}
thread_unlock_all_locking_mutexes(th);
if (th != main_th) rb_check_deadlock(th->vm);
if (th->vm->main_thread == th) {
ruby_cleanup(state);
}