[Groonga-commit] droonga/droonga-engine at e8a394e [master] Start services after serf agent is correctly initiated

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Mar 20 12:11:03 JST 2015


YUKI Hiroshi	2015-03-20 12:11:03 +0900 (Fri, 20 Mar 2015)

  New Revision: e8a394ee6aa00200dedb489abc8dd7a8dd53f6f4
  https://github.com/droonga/droonga-engine/commit/e8a394ee6aa00200dedb489abc8dd7a8dd53f6f4

  Message:
    Start services after serf agent is correctly initiated

  Modified files:
    lib/droonga/command/droonga_engine.rb

  Modified: lib/droonga/command/droonga_engine.rb (+13 -25)
===================================================================
--- lib/droonga/command/droonga_engine.rb    2015-03-20 11:37:15 +0900 (d8d401f)
+++ lib/droonga/command/droonga_engine.rb    2015-03-20 12:11:03 +0900 (1fe797e)
@@ -408,41 +408,32 @@ module Droonga
 
         def run_internal
           start_serf
-          @service_runner = run_service
-          setup_initial_on_ready
-          @restart_observer = run_restart_observer
-          @catalog_observer = run_catalog_observer
-          @command_runner = run_command_runner
+          @serf_agent.on_ready = lambda do
+            @serf.update_cluster_state
+            @service_runner = run_service
+            setup_initial_on_ready
+            @restart_observer = run_restart_observer
+            @catalog_observer = run_catalog_observer
+            @command_runner = run_command_runner
+          end
 
           trap_signals
           @loop.run
 
+          while @service_runner.nil? do
+            sleep 1
+          end
+
           @service_runner.success?
         end
 
         def setup_initial_on_ready
           return if****@confi*****_notify_fd.nil?
-
-          n_rest_tasks = 0
-          on_ready = lambda do
-            n_rest_tasks -= 1
-            return unless n_rest_tasks.zero?
-
+          @service_runner.on_ready = lambda do
             output = IO.new(@configuration.ready_notify_fd)
             output.puts("ready")
             output.close
           end
-
-          n_rest_tasks += 1
-          @service_runner.on_ready = lambda do
-            on_ready.call
-          end
-
-          n_rest_tasks += 1
-          @serf_agent.on_ready = lambda do
-            @serf.update_cluster_state
-            on_ready.call
-          end
         end
 
         def trap_signals
@@ -525,9 +516,6 @@ module Droonga
         def start_serf
           @serf = Serf.new(@configuration.engine_name)
           @serf_agent =****@serf*****_agent(@loop)
-          @serf_agent.on_ready = lambda do
-            @serf.update_cluster_state
-          end
         end
 
         def stop_serf
-------------- next part --------------
HTML����������������������������...
Download 



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