From c607d8cdbc179adc730d83de98f57233470d39d6 Mon Sep 17 00:00:00 2001 From: zedshaw Date: Wed, 5 Apr 2006 12:29:23 +0000 Subject: Adds thread tracking and cleaner shutdown. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@147 19e92222-5c0b-0410-8929-a290d50e31e9 --- lib/mongrel/debug.rb | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'lib/mongrel/debug.rb') diff --git a/lib/mongrel/debug.rb b/lib/mongrel/debug.rb index 9e9a811..840182f 100644 --- a/lib/mongrel/debug.rb +++ b/lib/mongrel/debug.rb @@ -148,7 +148,7 @@ module RequestLog include Mongrel::HttpHandlerPlugin def process(request, response) - MongrelDbg::trace(:objects, "#{Time.now} OBJECT STATS BEFORE REQUEST #{request.params['PATH_INFO']}") + MongrelDbg::trace(:objects, "#{'-' * 10}\n#{Time.now} OBJECT STATS BEFORE REQUEST #{request.params['PATH_INFO']}") ObjectTracker.sample end @@ -164,10 +164,30 @@ module RequestLog end end + + class Threads < GemPlugin::Plugin "/handlers" + include Mongrel::HttpHandlerPlugin + + def process(request, response) + MongrelDbg::trace(:threads, "#{Time.now} REQUEST #{request.params['PATH_INFO']}") + ObjectSpace.each_object do |obj| + 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 + end + end + end end END { -MongrelDbg::trace(:files, "FILES OPEN AT EXIT") -log_open_files + MongrelDbg::trace(:files, "FILES OPEN AT EXIT") + log_open_files } -- cgit v1.2.3-24-ge0c7