diff options
Diffstat (limited to 'test/fiber/scheduler.rb')
-rw-r--r-- | test/fiber/scheduler.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/test/fiber/scheduler.rb b/test/fiber/scheduler.rb index 3fd41ef6f1..204a297133 100644 --- a/test/fiber/scheduler.rb +++ b/test/fiber/scheduler.rb @@ -350,3 +350,14 @@ class SleepingUnblockScheduler < Scheduler sleep(0.1) end end + +class SleepingBlockingScheduler < Scheduler + def kernel_sleep(duration = nil) + # Deliberaly sleep in a blocking state which can trigger a deadlock if the implementation is not correct. + Fiber.blocking{sleep 0.0001} + + self.block(:sleep, duration) + + return true + end +end |