From 15631717fce044fbad2f386a7b1c7daf4bdd83d2 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 21 Oct 2010 16:25:39 -0700 Subject: code shuffling for kgio Despite the large number of changes, most of it is code movement here. --- lib/rainbows/fiber/rev/kato.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lib/rainbows/fiber/rev/kato.rb (limited to 'lib/rainbows/fiber/rev/kato.rb') diff --git a/lib/rainbows/fiber/rev/kato.rb b/lib/rainbows/fiber/rev/kato.rb new file mode 100644 index 0000000..056b6ef --- /dev/null +++ b/lib/rainbows/fiber/rev/kato.rb @@ -0,0 +1,22 @@ +# -*- encoding: binary -*- +# :enddoc: +# keep-alive timeout class +class Rainbows::Fiber::Rev::Kato < Rev::TimerWatcher + def initialize + @watch = [] + super(1, true) + end + + def <<(fiber) + @watch << fiber + enable unless enabled? + end + + def on_timer + @watch.uniq! + while f = @watch.shift + f.resume if f.alive? + end + disable + end +end -- cgit v1.2.3-24-ge0c7