summaryrefslogtreecommitdiff
path: root/spec/ruby/core/thread
AgeCommit message (Collapse)Author
2024-02-15ruby-spec: Accept the receiver in backtracesYusuke Endoh
2024-02-15ruby-spec: Accept both a backtick and a single quote in error messagesYusuke Endoh
2024-02-05Update to ruby/spec@3fc4444Benoit Daloze
2023-10-12M:N thread scheduler for RactorsKoichi Sasada
This patch introduce M:N thread scheduler for Ractor system. In general, M:N thread scheduler employs N native threads (OS threads) to manage M user-level threads (Ruby threads in this case). On the Ruby interpreter, 1 native thread is provided for 1 Ractor and all Ruby threads are managed by the native thread. From Ruby 1.9, the interpreter uses 1:1 thread scheduler which means 1 Ruby thread has 1 native thread. M:N scheduler change this strategy. Because of compatibility issue (and stableness issue of the implementation) main Ractor doesn't use M:N scheduler on default. On the other words, threads on the main Ractor will be managed with 1:1 thread scheduler. There are additional settings by environment variables: `RUBY_MN_THREADS=1` enables M:N thread scheduler on the main ractor. Note that non-main ractors use the M:N scheduler without this configuration. With this configuration, single ractor applications run threads on M:1 thread scheduler (green threads, user-level threads). `RUBY_MAX_CPU=n` specifies maximum number of native threads for M:N scheduler (default: 8). This patch will be reverted soon if non-easy issues are found. [Bug #19842]
2023-09-04Update to ruby/spec@96d1072Benoit Daloze
2023-06-26Update to ruby/spec@30e1c35Benoit Daloze
2023-02-27Update to ruby/spec@e7dc804Benoit Daloze
2022-11-08Thread#native_thread_id is very platform specificNobuyoshi Nakada
2022-11-07Update to ruby/spec@740ccc8Benoit Daloze
2022-09-28Update to ruby/spec@1d9d5c6Benoit Daloze
2022-06-26Update to ruby/spec@ab32a1aBenoit Daloze
2022-04-25Update to ruby/spec@3affe1eBenoit Daloze
2022-03-28Update to ruby/spec@aaf998fBenoit Daloze
2022-03-03Update to ruby/spec@82cd3a3Benoit Daloze
2021-10-28Update to ruby/spec@21a48d9Benoit Daloze
2021-07-29Make RubyVM::AbstractSyntaxTree.of raise for method/proc created in evalJeremy Evans
This changes Thread::Location::Backtrace#absolute_path to return nil for methods/procs defined in eval. If the realpath of an iseq is nil, that indicates it was defined in eval, in which case you cannot use RubyVM::AbstractSyntaxTree.of. Fixes [Bug #16983] Co-authored-by: Koichi Sasada <ko1@atdot.net> Notes: Merged: https://github.com/ruby/ruby/pull/4519
2021-07-29Update to ruby/spec@b65d01fBenoit Daloze
2021-01-28Update to ruby/spec@8cafaa5Benoit Daloze
2020-11-13Update to ruby/spec@b0b7f53Benoit Daloze
2020-10-24Update to ruby/spec@4f59d86Benoit Daloze
2020-09-21Make Thread#join always convert its argument, as before 70f08f1eedBenoit Daloze
2020-09-21Fix Thread leak in Thread#join specsBenoit Daloze
2020-09-21Make `Thread#join` non-blocking.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3558
2020-09-152.8 -> 3.0 in specsBenoit Daloze
2020-08-31Thread.exclusive: delete卜部昌平
Has been deprecated since 2069c9e031fc968d6d3d0fe30a9316851e4d91d8. [Feature #17125][ruby-core:99636]
2020-08-28Update to ruby/spec@335eb9bBenoit Daloze
2020-07-27Update to ruby/spec@07164daBenoit Daloze
2020-05-31Update to ruby/spec@4e486faBenoit Daloze
2020-05-03Update to ruby/spec@032ee74Benoit Daloze
2020-04-01Drop support for ruby 2.4 from ruby/specNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2892
2020-04-01Use FrozenError instead of frozen_error_classNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2892
2020-02-28Update to ruby/spec@41bf282Benoit Daloze
2020-01-28Update to ruby/spec@f8a2d54Benoit Daloze
2019-12-27Update to ruby/spec@d419e74Benoit Daloze
2019-12-22Move version guard outside to make it clear the method was added in Ruby 2.5Benoit Daloze
2019-12-11Test `Thread#to_s` when used from to_s_spec.rbNobuyoshi Nakada
2019-12-11`Thread#to_s` has been added at ruby 2.5Nobuyoshi Nakada
2019-12-11Thread#to_s is not same as #inspect on old version.Koichi Sasada
Thread#to_s returns simple Object#to_s until Ruby 2.4.
2019-12-11fix for old MRI versionsKoichi Sasada
2019-12-11Make Thread#to_s consistent with Method and Proc to_sJean byroot Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/2738
2019-11-29check interrupts at each frame pop timing.Koichi Sasada
Asynchronous events such as signal trap, finalization timing, thread switching and so on are managed by "interrupt_flag". Ruby's threads check this flag periodically and if a thread does not check this flag, above events doesn't happen. This checking is CHECK_INTS() (related) macro and it is placed at some places (laeve instruction and so on). However, at the end of C methods, C blocks (IMEMO_IFUNC) etc there are no checking and it can introduce uninterruptible thread. To modify this situation, we decide to place CHECK_INTS() at vm_pop_frame(). It increases interrupt checking points. [Bug #16366] This patch can introduce unexpected events...
2019-10-26Update to ruby/spec@28a728bBenoit Daloze
2019-10-14Suppress warnings for Thread.exclusiveNobuyoshi Nakada
2019-09-29Update to ruby/spec@519df35Benoit Daloze
2019-07-27Update to ruby/spec@875a09eBenoit Daloze
2019-04-28Update to ruby/spec@7de852dBenoit Daloze
2019-04-27Update to ruby/spec@15c9619Benoit Daloze
2019-03-28Update to ruby/spec@e81b3cderegon
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-21Update to ruby/spec@7a16e01eregon
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-27Update to ruby/spec@cdd6ff7eregon
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e