1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Use a similar pattern for waiting and ready

This commit is contained in:
Benoit Daloze 2020-09-17 12:55:17 +02:00
parent e4dbb91f4c
commit c3acfcc78d

View file

@ -21,7 +21,7 @@ class Scheduler
@lock = Mutex.new @lock = Mutex.new
@locking = 0 @locking = 0
@ready = Array.new @ready = []
end end
attr :readable attr :readable
@ -68,8 +68,7 @@ class Scheduler
if @waiting.any? if @waiting.any?
time = current_time time = current_time
waiting = @waiting waiting, @waiting = @waiting, {}
@waiting = {}
waiting.each do |fiber, timeout| waiting.each do |fiber, timeout|
if timeout <= time if timeout <= time
@ -84,7 +83,7 @@ class Scheduler
ready = nil ready = nil
@lock.synchronize do @lock.synchronize do
ready, @ready = @ready, Array.new ready, @ready = @ready, []
end end
ready.each do |fiber| ready.each do |fiber|