<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -9,7 +9,7 @@ ext/thin_parser/vc60.pdb
 ext/thin_parser/*.so
 lib/*.bundle
 lib/*.so
-log/*.log
+log
 spec/rails_app/log
 doc/rdoc/*
 tmp/*</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -8,20 +8,67 @@
 #  bleak log/memlog
 # 
 
+module Kernel
+  def alias_method_chain(target, feature)
+    # Strip out punctuation on predicates or bang methods since
+    # e.g. target?_without_feature is not a valid method name.
+    aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1
+    yield(aliased_target, punctuation) if block_given?
+    
+    with_method, without_method = &quot;#{aliased_target}_with_#{feature}#{punctuation}&quot;, &quot;#{aliased_target}_without_#{feature}#{punctuation}&quot;
+    
+    alias_method without_method, target
+    alias_method target, with_method
+    
+    case
+      when public_method_defined?(without_method)
+        public target
+      when protected_method_defined?(without_method)
+        protected target
+      when private_method_defined?(without_method)
+        private target
+    end
+  end
+end
+
 module BleakInstruments
   module Connection
     def self.included(base)
       base.class_eval do
-        alias_method :process_without_instrument, :process
-        alias_method :process, :process_with_instrument
+        alias_method_chain :receive_data, :instrument
+        alias_method_chain :process, :instrument
       end
     end
     
+    def receive_data_with_instrument(data)
+      receive_data_without_instrument(data)
+      $memlogger.snapshot($logfile, &quot;connection/receive_data&quot;, false, 0.1)
+    end
+    
     def process_with_instrument
       process_without_instrument
       $memlogger.snapshot($logfile, &quot;connection/process&quot;, false, 0.1)
     end
   end
+  
+  module Connector
+    def self.included(base)
+      base.class_eval do
+        alias_method_chain :connect, :instrument
+        alias_method_chain :initialize_connection, :instrument
+      end
+    end
+    
+    def connect_with_instrument
+      connect_without_instrument
+      $memlogger.snapshot($logfile, &quot;connector/connect&quot;, false, 0.1)
+    end
+    
+    def initialize_connection_with_instrument(connection)
+      initialize_connection_without_instrument(connection)
+      $memlogger.snapshot($logfile, &quot;connector/initialize_connection&quot;, false, 0.1)
+    end
+  end
 end
 
 require 'rubygems'
@@ -29,6 +76,7 @@ require 'bleak_house'
 require File.dirname(__FILE__) + '/../lib/thin'
 
 Thin::Connection.send :include, BleakInstruments::Connection
+Thin::Connectors::TcpServer.send :include, BleakInstruments::Connector
 
 $memlogger = BleakHouse::Logger.new
 File.delete($logfile = File.expand_path(&quot;log/memlog&quot;)) rescue nil</diff>
      <filename>script/bleak</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d6d9661620f37b5060631aa592c57374cafd0e25</id>
    </parent>
  </parents>
  <author>
    <name>macournoyer</name>
    <email>macournoyer@gmail.com</email>
  </author>
  <url>http://github.com/macournoyer/thin/commit/12c8b5a3b699af419ea210b8496f915956617e01</url>
  <id>12c8b5a3b699af419ea210b8496f915956617e01</id>
  <committed-date>2008-02-09T22:30:55-08:00</committed-date>
  <authored-date>2008-02-09T22:30:55-08:00</authored-date>
  <message>Instrumenting more code to hunt down potential mem leaks w/ bleakhouse.</message>
  <tree>b025e248a10bd1888e984d4cec10322426bc8b7a</tree>
  <committer>
    <name>macournoyer</name>
    <email>macournoyer@gmail.com</email>
  </committer>
</commit>
