mirror of
https://github.com/ruby/ruby.git
synced 2025-09-16 09:04:05 +02:00
merges r30743 from trunk into ruby_1_9_2.
-- * 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/branches/ruby_1_9_2@31202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4ed5cda951
commit
67db9280bf
3 changed files with 10 additions and 3 deletions
5
thread.c
5
thread.c
|
@ -512,13 +512,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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue