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.rb27
1 files changed, 15 insertions, 12 deletions
diff --git a/test/fiber/scheduler.rb b/test/fiber/scheduler.rb
index e0b3776306..1e7f60cdf0 100644
--- a/test/fiber/scheduler.rb
+++ b/test/fiber/scheduler.rb
@@ -99,16 +99,6 @@ class Scheduler
Process.clock_gettime(Process::CLOCK_MONOTONIC)
end
- def kernel_sleep(duration = nil)
- if duration
- @waiting[Fiber.current] = current_time + duration
- end
-
- Fiber.yield
-
- return true
- end
-
def io_wait(io, events, duration)
unless (events & IO::READABLE).zero?
@readable[io] = Fiber.current
@@ -123,14 +113,27 @@ class Scheduler
return true
end
- def mutex_lock(mutex)
+ def kernel_sleep(duration = nil)
+ # p [__method__, duration]
+ if duration
+ @waiting[Fiber.current] = current_time + duration
+ end
+
+ Fiber.yield
+
+ return true
+ end
+
+ def block(blocker)
+ # p [__method__, blocker]
@locking += 1
Fiber.yield
ensure
@locking -= 1
end
- def mutex_unlock(mutex, fiber)
+ def unblock(blocker, fiber)
+ # p [__method__, blocker, fiber]
@lock.synchronize do
@ready << fiber
end