diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-23 20:18:36 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-23 20:18:36 +0000 |
commit | a1d416425796d192a7d30b89493971cfe9c4990e (patch) | |
tree | 4f72a6d0ec43d86b0be2d6e1fd4f5184a18f65ae /vm.c | |
parent | 2e5ef26a4e05347cdaea2a222e481516a8a6f4cd (diff) | |
download | ruby-a1d416425796d192a7d30b89493971cfe9c4990e.tar.gz |
* thread.c (thread_start_func_2): unlock all locking mutexes
before clean up. [ruby-core:26877]
* thread.c (rb_thread_atfork): no other threads to be joined.
* vm_core.h (rb_thread_lock_unlock, rb_thread_lock_destroy):
new functions.
* vm.c (ruby_vm_destruct): unlock and destroy global VM lock.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1498,6 +1498,8 @@ ruby_vm_destruct(void *ptr) st_free_table(vm->living_threads); vm->living_threads = 0; } + rb_thread_lock_unlock(&vm->global_vm_lock); + rb_thread_lock_destroy(&vm->global_vm_lock); ruby_xfree(vm); ruby_current_vm = 0; #if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE |