diff options
author | Samuel Williams <[email protected]> | 2022-10-06 23:00:49 +1300 |
---|---|---|
committer | GitHub <[email protected]> | 2022-10-06 23:00:49 +1300 |
commit | e696ec67ac7bd14ff8436f9ee7724c17c5bf6689 (patch) | |
tree | f1388ed0cc30ceec2e5febf316c3897afa01b9ad /spec/ruby/core | |
parent | 75a53f6be0bdd02fcf70a352892e085a02995cf9 (diff) |
Introduce `Fiber.blocking{}` for bypassing the fiber scheduler. (#6498)
Notes
Notes:
Merged-By: ioquatix <[email protected]>
Diffstat (limited to 'spec/ruby/core')
-rw-r--r-- | spec/ruby/core/fiber/blocking_spec.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/spec/ruby/core/fiber/blocking_spec.rb b/spec/ruby/core/fiber/blocking_spec.rb index 5ae5fbd577..852861d12f 100644 --- a/spec/ruby/core/fiber/blocking_spec.rb +++ b/spec/ruby/core/fiber/blocking_spec.rb @@ -60,3 +60,20 @@ ruby_version_is "3.0" do end end end + +ruby_version_is "3.2" do + describe "Fiber.blocking" do + context "when fiber is non-blocking" do + it "can become blocking" do + fiber = Fiber.new(blocking: false) do + Fiber.blocking do |fiber| + fiber.blocking? ? :blocking : :non_blocking + end + end + + blocking = fiber.resume + blocking.should == :blocking + end + end + end +end |