summaryrefslogtreecommitdiff
path: root/ractor.c
AgeCommit message (Collapse)Author
2020-09-25Ractor.yield should raise if out-port is closedKoichi Sasada
Ractor.yield should raise Ractor::ClosedError if current Ractor's outgoing-port is closed. Notes: Merged: https://github.com/ruby/ruby/pull/3578
2020-09-25frozen T_OBJECT can be shareable.Koichi Sasada
If an T_OBJECT object is frozen and all ivars are shareable, the object should be shareable. Notes: Merged: https://github.com/ruby/ruby/pull/3575
2020-09-25Ractor#close_outgoping cancel Ractor.yieldKoichi Sasada
Ractor#close_outgoing should cancel waiting Ractor.yield. However, yield a value by the Ractor's block should not cancel (to recognize terminating Ractor, introduce rb_ractor_t::yield_atexit flag). Notes: Merged: https://github.com/ruby/ruby/pull/3572
2020-09-24add GC_GUARDKoichi Sasada
We observed mark miss on this point so we add RB_GC_GUARD() to avoid wrong free.
2020-09-20Validate name during initializationQuang-Minh Nguyen
Notes: Merged: https://github.com/ruby/ruby/pull/3555
2020-09-19strip trailing spaces [ci skip]Nobuyoshi Nakada
2020-09-18add debug log on enabling multi-ractor modeKoichi Sasada
Notes: Merged: https://github.com/ruby/ruby/pull/3548
2020-09-15restart Ractor.select on intteruptKoichi Sasada
signal can interrupt Ractor.select, but if there is no exception, Ractor.select should restart automatically. Notes: Merged: https://github.com/ruby/ruby/pull/3534
2020-09-06Fix typos [ci skip]Kazuhiro NISHIYAMA
2020-09-04Fixed heap-use-after-free on racterNobuyoshi Nakada
2020-09-04check multi_ractor mode at main_pKoichi Sasada
rb_ractor_main_p() need to access to the ractor pointer in TLS. However it is slow operation so that we need to skip this check if it is not multi-ractor mode (!ruby_multi_ractor). This performance regression is pointed at https://bugs.ruby-lang.org/issues/17100#note-27 Notes: Merged: https://github.com/ruby/ruby/pull/3513
2020-09-04Initialize loop variables of list_for_each for MS VCNobuyoshi Nakada
2020-09-03Introduce Ractor mechanism for parallel executionKoichi Sasada
This commit introduces Ractor mechanism to run Ruby program in parallel. See doc/ractor.md for more details about Ractor. See ticket [Feature #17100] to see the implementation details and discussions. [Feature #17100] This commit does not complete the implementation. You can find many bugs on using Ractor. Also the specification will be changed so that this feature is experimental. You will see a warning when you make the first Ractor with `Ractor.new`. I hope this feature can help programmers from thread-safety issues. Notes: Merged: https://github.com/ruby/ruby/pull/3365