about summary refs log tree commit homepage
path: root/lib/mongrel
diff options
context:
space:
mode:
authorevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-11-12 20:32:35 +0000
committerevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-11-12 20:32:35 +0000
commit2d38b5d25b1f39f883f112e9750dd8d20ec68d8d (patch)
treed2add90a33f65e10ba21d09f69341d068d639815 /lib/mongrel
parent0660f36c162714afcab221638ec2f703d20425ab (diff)
downloadunicorn-2d38b5d25b1f39f883f112e9750dd8d20ec68d8d.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@876 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'lib/mongrel')
-rw-r--r--lib/mongrel/debug.rb47
-rw-r--r--lib/mongrel/http_response.rb1
2 files changed, 27 insertions, 21 deletions
diff --git a/lib/mongrel/debug.rb b/lib/mongrel/debug.rb
index 8e21183..2686c1e 100644
--- a/lib/mongrel/debug.rb
+++ b/lib/mongrel/debug.rb
@@ -122,17 +122,20 @@ module RequestLog
       begin
         stats = Hash.new(0)
         lengths = {}
-        ObjectSpace.each_object do |o|
-          begin
-            if o.respond_to? :length
-              len = o.length
-              lengths[o.class] ||= Mongrel::Stats.new(o.class)
-              lengths[o.class].sample(len)
+        begin
+          ObjectSpace.each_object do |o|
+            begin
+              if o.respond_to? :length
+                len = o.length
+                lengths[o.class] ||= Mongrel::Stats.new(o.class)
+                lengths[o.class].sample(len)
+              end
+            rescue Object
             end
-          rescue Object
+  
+            stats[o.class] += 1
           end
-
-          stats[o.class] += 1
+        rescue Object # Ignore since ObjectSpace might not be loaded on JRuby
         end
 
         stats.sort {|(k1,v1),(k2,v2)| v2 <=> v1}.each do |k,v|
@@ -171,21 +174,23 @@ module RequestLog
 
     def process(request, response)
       MongrelDbg::trace(:threads, "#{Time.now} REQUEST #{request.params['PATH_INFO']}")
-      ObjectSpace.each_object do |obj|
-        begin
-          if obj.class == Mongrel::HttpServer
-            worker_list = obj.workers.list
-
-            if worker_list.length > 0
-              keys = "-----\n\tKEYS:"
-              worker_list.each {|t| keys << "\n\t\t-- #{t}: #{t.keys.inspect}" }
+      begin
+        ObjectSpace.each_object do |obj|
+          begin
+            if obj.class == Mongrel::HttpServer
+              worker_list = obj.workers.list
+  
+              if worker_list.length > 0
+                keys = "-----\n\tKEYS:"
+                worker_list.each {|t| keys << "\n\t\t-- #{t}: #{t.keys.inspect}" }
+              end
+  
+              MongrelDbg::trace(:threads, "#{obj.host}:#{obj.port} -- THREADS: #{worker_list.length} #{keys}")
             end
-
-            MongrelDbg::trace(:threads, "#{obj.host}:#{obj.port} -- THREADS: #{worker_list.length} #{keys}")
+          rescue Object # Ignore since obj.class can sometimes take parameters            
           end
-        rescue Object
-          # ignore since obj.class can sometimes take parameters
         end
+      rescue Object # Ignore since ObjectSpace might not be loaded on JRuby
       end
     end
   end
diff --git a/lib/mongrel/http_response.rb b/lib/mongrel/http_response.rb
index 1eb7077..32e433e 100644
--- a/lib/mongrel/http_response.rb
+++ b/lib/mongrel/http_response.rb
@@ -43,6 +43,7 @@ module Mongrel
       @socket = socket
       @body = StringIO.new
       @status = 404
+      @reason = nil
       @header = HeaderOut.new(StringIO.new)
       @header[Const::DATE] = Time.now.httpdate
       @body_sent = false