* compile.c (iseq_specialized_instruction): do not use
VM_CALL_SEND_BANG flag any longer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
machine_register_stack_maxsize.
* gc.c (rb_gc_stack_maxsize): new global variable for the thread size
of the main thread.
(STACK_LEVEL_MAX): use machine_stack_maxsize of current thread.
(ruby_stack_check): check IA64 register stack.
(ruby_set_stack_size): set rb_gc_stack_maxsize.
(Init_stack): set rb_gc_stack_maxsize.
* thread_pthread.ci (native_thread_create): initialize
th->machine_stack_maxsize and th->machine_register_stack_maxsize.
* vm.c (Init_BareVM): initialize th->machine_stack_maxsize and
th->machine_register_stack_maxsize.
* thread_win32.ci (native_thread_create): initialize
th->machine_stack_maxsize. not tested. just a guess at all.
[ruby-dev:32604]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h:
prepare native_cond_*() which are based on pthread_cond_*() spec.
* prelude.rb: fix Mutex#synchronize method.
* vm_core.h, include/ruby/intern.h: change unblock function interface
(to pass some user data).
* file.c, process.c: ditto.
* benchmark/bm_vm2_mutex.rb: add a benchmark for mutex.
* benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex
with contension.
* benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby.
* test/ruby/test_thread.rb: add a test.
* common.mk: fix benchmark options.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm.c (vm_invoke_proc_core): fix to do not restore
$SAFE when proc invoked by bmethod.
* vm_core.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e