From 1f9243c13e5e91ecbca3628f6c801c06957354e2 Mon Sep 17 00:00:00 2001
From: David Heinemeier Hansson <david@loudthinking.com>
Date: Sun, 12 Dec 2004 20:49:20 +0000
Subject: Cleaner deactivation of the breakpoint server

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@138 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
---
 railties/lib/breakpoint.rb | 10 +++++++++-
 railties/lib/dispatcher.rb |  2 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/railties/lib/breakpoint.rb b/railties/lib/breakpoint.rb
index d456c3daa7..9c3164b2eb 100755
--- a/railties/lib/breakpoint.rb
+++ b/railties/lib/breakpoint.rb
@@ -380,7 +380,7 @@ module Breakpoint
     @drb_service = DRbService.new
     did_collision = false
     begin
-      DRb.start_service(uri, @drb_service)
+      @service = DRb.start_service(uri, @drb_service)
     rescue Errno::EADDRINUSE
       if ignore_collisions then
         nil
@@ -402,6 +402,14 @@ module Breakpoint
     return true
   end
 
+  # Deactivates a running Breakpoint service.
+  def deactivate_drb
+    @service.stop_service unless @service.nil?
+    @service = nil
+    @use_drb = false
+    @drb_service = nil
+  end
+
   # Returns true when Breakpoints are used over DRb.
   # Breakpoint.activate_drb causes this to be true.
   def use_drb?
diff --git a/railties/lib/dispatcher.rb b/railties/lib/dispatcher.rb
index d30353dc7b..abb686a469 100644
--- a/railties/lib/dispatcher.rb
+++ b/railties/lib/dispatcher.rb
@@ -49,7 +49,7 @@ class Dispatcher
         ActiveRecord::Base.reset_column_information_and_inheritable_attributes_for_all_subclasses
       end
       
-      DRb.stop_service if defined?(BREAKPOINT_SERVER_PORT)
+      Breakpoint.deactivate_drb if defined?(BREAKPOINT_SERVER_PORT)
     end
   end
   
-- 
cgit v1.2.3