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:
parent
e4dbb91f4c
commit
c3acfcc78d
1 changed files with 3 additions and 4 deletions
|
@ -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|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue