Kouhei Sutou
null+****@clear*****
Fri Mar 21 23:44:51 JST 2014
Kouhei Sutou 2014-03-21 23:44:51 +0900 (Fri, 21 Mar 2014) New Revision: abc9a4c751cdec6bb3ca5eaf88a30d4ea1563051 https://github.com/droonga/fluent-plugin-droonga/commit/abc9a4c751cdec6bb3ca5eaf88a30d4ea1563051 Message: Use the default event loop One event loop in one process is better. Modified files: lib/droonga/dispatcher.rb lib/droonga/event_loop.rb lib/droonga/worker.rb Modified: lib/droonga/dispatcher.rb (+1 -6) =================================================================== --- lib/droonga/dispatcher.rb 2014-03-21 18:43:42 +0900 (4dc5a9e) +++ lib/droonga/dispatcher.rb 2014-03-21 23:44:51 +0900 (399f875) @@ -54,7 +54,7 @@ module Droonga @catalog = catalog @options = options @name = @options[:name] - @loop = EventLoop.new + @loop = EventLoop.new(Coolio::Loop.default) @sessions = {} @current_id = 0 @local = Regexp.new("^#{@name}") @@ -69,9 +69,6 @@ module Droonga def start @forwarder.start @farm.start - @loop_thread = Thread.new do - @loop.run - end ensure_schema end @@ -85,8 +82,6 @@ module Droonga adapter_runner.shutdown end @farm.shutdown - @loop.stop - @loop_thread.join end def process_message(message) Modified: lib/droonga/event_loop.rb (+2 -11) =================================================================== --- lib/droonga/event_loop.rb 2014-03-21 18:43:42 +0900 (c13ac68) +++ lib/droonga/event_loop.rb 2014-03-21 23:44:51 +0900 (de90f5d) @@ -19,21 +19,12 @@ require "coolio" module Droonga class EventLoop - def initialize - @loop = Coolio::Loop.new + def initialize(loop) + @loop = loop @loop_breaker = Coolio::AsyncWatcher.new @loop_breaker.attach(@loop) end - def run - @loop.run - end - - def stop - @loop.stop - break_current_loop - end - def attach(watcher) @loop.attach(watcher) break_current_loop Modified: lib/droonga/worker.rb (+5 -3) =================================================================== --- lib/droonga/worker.rb 2014-03-21 18:43:42 +0900 (efadfa8) +++ lib/droonga/worker.rb 2014-03-21 23:44:51 +0900 (196d851) @@ -20,7 +20,8 @@ require "droonga/message_receiver" module Droonga module Worker def initialize - @loop = EventLoop.new + @raw_loop = Coolio::Loop.new + @loop = EventLoop.new(@raw_loop) @handler_runner = HandlerRunner.new(@loop, config.merge(:dispatcher => nil)) receiver_socket = config[:message_receiver] @@ -33,7 +34,7 @@ module Droonga Droonga.logger.trace("#{log_tag}: run: start") @handler_runner.start @message_receiver.start - @loop.run + @raw_loop.run @handler_runner.shutdown Droonga.logger.trace("#{log_tag}: run: done") end @@ -41,7 +42,8 @@ module Droonga def stop Droonga.logger.trace("#{log_tag}: stop: start") @message_receiver.shutdown - @loop.stop + @raw_loop.stop + @loop.break_current_loop Droonga.logger.trace("#{log_tag}: stop: done") end -------------- next part -------------- HTML����������������������������...Download