lib/em-synchrony.rb in em-synchrony-0.1.2 vs lib/em-synchrony.rb in em-synchrony-0.1.4

- old
+ new

@@ -3,11 +3,25 @@ require "rubygems" require "eventmachine" require "fiber" require "em-synchrony/em-multi" +# require "em-synchrony/iterator" # iterators are not release in EM yet +require "em-synchrony/connection_pool" + require "em-synchrony/em-http" require "em-synchrony/em-mysql" -# require "em-synchrony/em-jack" require "em-synchrony/em-remcached" -require "em-synchrony/connection_pool" \ No newline at end of file +module EventMachine + + # A convenience method for wrapping EM.run body within + # a Ruby Fiber such that async operations can be transparently + # paused and resumed based on IO scheduling. + def self.synchrony(blk=nil, tail=nil, &block) + blk ||= block + context = Proc.new { Fiber.new { blk.call }.resume } + + self.run(context, tail) + end + +end