[Groonga-commit] droonga/fluent-plugin-droonga at abc9a4c [master] Use the default event loop

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index