summaryrefslogtreecommitdiff
path: root/test/fiber/scheduler.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/fiber/scheduler.rb')
-rw-r--r--test/fiber/scheduler.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/fiber/scheduler.rb b/test/fiber/scheduler.rb
index 43edcb27ed..10854aac2c 100644
--- a/test/fiber/scheduler.rb
+++ b/test/fiber/scheduler.rb
@@ -19,6 +19,8 @@ class Scheduler
@writable = {}
@waiting = {}
+ @closed = false
+
@lock = Mutex.new
@locking = 0
@ready = []
@@ -96,6 +98,19 @@ class Scheduler
@urgent = nil
end
+ def close
+ self.run
+ ensure
+ @closed = true
+
+ # We freeze to detect any inadvertant modifications after the scheduler is closed:
+ self.freeze
+ end
+
+ def closed?
+ @closed
+ end
+
def current_time
Process.clock_gettime(Process::CLOCK_MONOTONIC)
end