summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2022-10-06 23:00:49 +1300
committerGitHub <noreply@github.com>2022-10-06 23:00:49 +1300
commite696ec67ac7bd14ff8436f9ee7724c17c5bf6689 (patch)
treef1388ed0cc30ceec2e5febf316c3897afa01b9ad /spec
parent75a53f6be0bdd02fcf70a352892e085a02995cf9 (diff)
Introduce `Fiber.blocking{}` for bypassing the fiber scheduler. (#6498)
Notes
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
Diffstat (limited to 'spec')
-rw-r--r--spec/ruby/core/fiber/blocking_spec.rb17
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