summaryrefslogtreecommitdiff
path: root/cont.c
AgeCommit message (Collapse)Author
2010-11-03* cont.c (fiber_t_alloc): raise an error when fiber is going to bemame
initialized twice. [ruby-dev:42524] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-03* cont.c (rb_fiber_resume): raise an "double resume" error when rootmame
fiber is going to be resumed. [ruby-dev:42523] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-27* cont.c: apply documentation patch by Run Paint Run Run.naruse
[ruby-core:32915] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-12* cont.c (fiber_setcontext): missing variable definition.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-03* cont.c (fiber_memsize): Return size.naruse
Before this change, fiber_memsize always returns 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-28* cont.c: typos.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-28* cont.c: (RB_PAGE_SIZE): renamed from PAGE_SIZE. [ruby-dev:41870]naruse
* cont.c: (RB_PAGE_MASK): renamed from PAGE_MASK. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-27* class.c, compile.c, dir.c, file.c, iseq.c, parse.y, random.c:naruse
clean unused-value warnings. * cont.c, process.c, vm_exec.h: clean cast warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-21* configure.in (XCFLAGS): use -fvisibility=hidden if possible.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-18* include/ruby/ruby.h (rb_data_type_t): restructured. [ruby-dev:41862]nobu
add parent member. * error.c (rb_typeddata_inherited_p): new function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-21 * cont.c (fiber_setcontext): Use swapcontext() instead longjmp().kosaki
[ruby-dev:41316] [Bug #3295] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-17* array.c: Documentation: change => in call-seq to ->.marcandre
Harmonize "#=>" in examples. [ruby-core:30206] * bignum.c: ditto * class.c: ditto * compar.c: ditto * cont.c: ditto * dir.c: ditto * encoding.c: ditto * enum.c: ditto * enumerator.c: ditto * error.c: ditto * eval.c: ditto * file.c: ditto * gc.c: ditto * io.c: ditto * load.c: ditto * marshal.c: ditto * math.c: ditto * numeric.c: ditto * object.c: ditto * pack.c: ditto * proc.c: ditto * process.c: ditto * random.c: ditto * range.c: ditto * re.c: ditto * ruby.c: ditto * signal.c: ditto * sprintf.c: ditto * string.c: ditto * struct.c: ditto * thread.c: ditto * time.c: ditto * transcode.c: ditto * variable.c: ditto * vm_eval.c: ditto * vm_method.c: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-16* cont.c (fiber_set_stack_location), iseq.c (prepare_iseq_build),nobu
node.c (dump_node): suppress warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09* cont.c (fiber_switch): raise FiberError when returning to deadmame
fiber. [ruby-dev:40833] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09* cont.c (fiber_initialize_machine_stack_context): try to releasenobu
unnecessary fibers and retry to create. based on a patch from masaya tarui at [ruby-dev:41230]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08* cont.c (stackgrowdirection): removed duplicated code, usenobu
STACK_UPPER macro instead. * gc.h (STACK_DIR_UPPER): moved from thread_pthread.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08* error.c: RDoc for subclasses of Exception. [ruby-core:28394]marcandre
* cont.c: ditto * enumerator.c: ditto * io.c: ditto * math.c: ditto * numeric.c: ditto * proc.c: ditto * re.c: ditto * thread.c: ditto * transcode.c: ditto. Thanks to Run Paint for some of the documentation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06* cont.c: define FIBER_USE_NATIVE only when _WIN32_WINNT >= 0x0400usa
on Windows because Fiber APIs are supported only such building (and running) environments. [ruby-dev:41192] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06* cont.c (Init_Cont): th is used only when FIBER_USE_NATIVE.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06* cont.c (fiber_setcontext): Fix last commit.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-05* cont.c: apply FIBER_USE_NATIVE patch. This patch improveko1
Fiber context switching cost using system APIs. Detail comments are written in cont.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-05* vm_method.c (rb_unlink_method_entry, rb_sweep_method_entry):ko1
added. Unlinked method entries are collected to vm->unlinked_method_entry_list. On the GC timing, mark all method entries which are on all living threads. Only non-marked method entries are collected. This hack prevents releasing living method entry. [Performance Consideration] Since this Method Entry GC (MEGC) doesn't occuer frequently, MEGC will not be a performance bottleneck. However, to traverse living method entries, every control frame push needs to clear cfp->me field. This will be a performance issue (because pushing control frame is occurred frequently). Bug #2777 [ruby-dev:40457] * cont.c (fiber_init): init cfp->me. * gc.c (garbage_collect): kick rb_sweep_method_entry(). * method.h (rb_method_entry_t): add a mark field. * vm.c (invoke_block_from_c): set passed me. * vm.c (rb_thread_mark): mark cfp->me. * vm_core.h (rb_thread_t): add a field passed_me. * vm_core.h (rb_vm_t): add a field unlinked_method_entry_list. * vm_insnhelper.c (vm_push_frame): clear cfp->me at all times. * vm_insnhelper.c (vm_call_bmethod): pass me. * bootstraptest/test_method.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25* cont.c, vm_core.h, eval.c: because rb_protect must not be jumped bymame
callcc, revert r26407. And rename trap_tag to protect_tag and change exception message (across trap -> across stack rewinding barrier). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25* cont.c (rb_cont_call, cont_restore_1): remove trap_tag check becausemame
it seems not to make sense. [ruby-dev:40121] * vm_core.h, eval.c (rb_protect): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-03* cont.c (rb_fiber_start): fixed unconditional test.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-03fix typos.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-02* cont.c (fiber_free): don't free unallocated local_storage. see #1325.wanabe
* cont.c (cont_init): clear local_storage not to use current thread's. * cont.c (fiber_t_alloc, root_fiber_alloc): link itself always for a case that fiber_link_remove() is called before fiber_link_join(). * cont.c (fiber_init): clear cont->vm_stack and th->stack before root_fiber_alloc() in rb_fiber_current(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-02revert r25623wanabe
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01* cont.c (fiber_free): don't free unallocated local_storage. see #1325.wanabe
* cont.c (cont_init): clear local_storage not to use current thread's. * cont.c (fiber_t_alloc, root_fiber_alloc): link itself always for a case that fiber_link_remove() is called before fiber_link_join(). * cont.c (fiber_init): don't join half-baked fiber. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21* compile.c, cont.c, gc.c, insns.def, iseq.c, iseq.h, process.c,nobu
thread.c, vm.c, vm_core.h, vm_dump.c, vm_eval.c, vm_insnhelper.c, vm_method.c, template/insns_info.inc.tmpl, tool/instruction.rb: fixed types. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21* cont.c, proc.c: added rdoc.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21* cont.c (cont_new, cont_capture, fiber_t_alloc): needs alreadynobu
running thread. cf. [ruby-core:25681] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09* cont.c (cont_memsize, fiber_memsize): constified.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09* include/ruby/ruby.h (rb_data_type_struct): constified dsize.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09* cont.c (cont_memsize): fixed wrong expression on IA64.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09* cont.c (cont_restore_1, rb_cont_call): should be Fiber.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08* cont.c (cont_data_type, fiber_data_type): typed.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-01* cont.c (cont_capture, fiber_store): reraise transferred error.nobu
* cont.c (fiber_switch): transfers dead fiber error to the previouse or root fiber if the current fiber is dead. [ruby-core:23651] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-01* cont.c: fixed types.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22stripped trailing spaces.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-13* cont.c (rb_fiber_alive_p): fix to return true instead of 1.ko1
[ruby-dev:37991] * test/ruby/test_fiber.rb: add a test for Fiber#alive? git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-05* cont.c (cont_mark, cont_capture, cont_restore_1): use #else insteadmame
of #elif. a patch from NISHIMATSU Takeshi <t_nissie at yahoo.co.jp> in [ruby-list:45856]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-01* cont.c (rb_fiber_current), dln.c (dln_print_undef, dln_undefined),nobu
eval.c (rb_iterator_p, rb_need_block), load.c: (Init_load), ruby.c (uscore_get, rb_f_chop), st.c (stat_col), signal.c (rb_signal_buff_size, ruby_sig_finalize), thread.c (rb_thread_sleep_forever, rb_thread_sleep_deadly, rb_thread_alone): protoized. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-20* cont.c (ruby_Init_{Continuation_body,Fiber_as_Coroutine}): prefixednobu
with ruby_ to export. * ext/continuation/continuation.c, ext/fiber/fiber.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-19* vm.c: add a prefix "rb_" to exposed functionsko1
vm_get_ruby_level_next_cfp(), rb_vm_make_env_object(), vm_stack_to_heap(), vm_make_proc(), vm_invoke_proc(), vm_get_sourceline(), vm_cref(), vm_localjump_error(), vm_make_jump_tag_but_local_jump(), vm_jump_tag_but_local_jump(). This changes may affect only core because most of renamed functions require a pointer of not-exposed struct such as rb_thread_t or NODE. In short, they are core functions. * cont.c, eval.c, eval_intern.h, load.c, proc.c, thread.c, vm_core.h, vm_dump.c, vm_eval.c, vm_exec.c, vm_insnhelper.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-17* cont.c (cont_restore_0): padding size doesn't need to be largenobu
if alloca is used. suppress warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-14* cont.c: fix prototype declare of register_stack_extendtakano32
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-10* cont.c (cont_restore_1): should not be inlined.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-06* cont.c (cont_restore_0): streamlined to ensure O(1) time. based onnobu
a patch by Brent Roman <brent AT mbari.org>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-28* cont.c: small RDoc fix mentioned from <radek.bulat at gmail.com>matz
in [ruby-core:20921]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e