From c0df78a84bde010034970effee30700fd502a401 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 8 Dec 2009 00:46:38 -0800 Subject: NeverBlock: resync with recent our EM-related expansion The last change to our EventMachine support code broke our (lightly-tested) NeverBlock support badly. --- lib/rainbows/never_block.rb | 14 ++++++++------ lib/rainbows/never_block/event_machine.rb | 6 ++++++ 2 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 lib/rainbows/never_block/event_machine.rb (limited to 'lib') diff --git a/lib/rainbows/never_block.rb b/lib/rainbows/never_block.rb index 0933c73..06bb496 100644 --- a/lib/rainbows/never_block.rb +++ b/lib/rainbows/never_block.rb @@ -34,12 +34,14 @@ module Rainbows G.server.extend(Core) end - module Client - + module Core def self.setup - const_set(:POOL, ::NB::Pool::FiberPool.new(O[:pool_size])) - Rainbows.const_get(O[:backend]).const_get(:Client).module_eval do - include Rainbows::NeverBlock::Client + self.const_set(:POOL, ::NB::Pool::FiberPool.new(O[:pool_size])) + base = O[:backend].to_s.gsub!(/([a-z])([A-Z])/, '\1_\2').downcase! + require "rainbows/never_block/#{base}" + Rainbows::NeverBlock.const_get(:Client).class_eval do + self.superclass.const_set(:APP, G.server.app) + include Rainbows::NeverBlock::Core alias _app_call app_call undef_method :app_call alias app_call nb_app_call @@ -60,7 +62,7 @@ module Rainbows module Core def init_worker_process(worker) super - Client.setup + Core.setup logger.info "NeverBlock/#{O[:backend]} pool_size=#{O[:pool_size]}" end end diff --git a/lib/rainbows/never_block/event_machine.rb b/lib/rainbows/never_block/event_machine.rb new file mode 100644 index 0000000..af72388 --- /dev/null +++ b/lib/rainbows/never_block/event_machine.rb @@ -0,0 +1,6 @@ +module Rainbows + module NeverBlock + class Client < Rainbows::EventMachine::Client + end + end +end -- cgit v1.2.3-24-ge0c7