Use a similar pattern for waiting and ready
This commit is contained in:
parent
e4dbb91f4c
commit
c3acfcc78d
@ -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…
x
Reference in New Issue
Block a user