<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>dacb5df8bfe9aad74bc79db640b3ae4c2683db27</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/7bd027914c5ffd36bb408ef47dc749de3b6e063a</url>
    <id>7bd027914c5ffd36bb408ef47dc749de3b6e063a</id>
    <committed-date>2009-08-12T14:28:38-07:00</committed-date>
    <authored-date>2009-08-12T14:28:38-07:00</authored-date>
    <message>Fix Remote address spoofing vulnerability in Connection#remote_address [Alexey Borzenkov]</message>
    <tree>c9bea92fe8acae6a88af66ef6d9cb0b32627a886</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>90bca2cc4a777df51623f793616e4d94ca19cd0d</id>
      </parent>
    </parents>
    <author>
      <name>Alexey Borzenkov</name>
      <email>snaury@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/ba2aac25a76ef0bfcc34b54076bc72b60b8fee5b</url>
    <id>ba2aac25a76ef0bfcc34b54076bc72b60b8fee5b</id>
    <committed-date>2009-06-24T03:32:30-07:00</committed-date>
    <authored-date>2009-06-24T03:32:30-07:00</authored-date>
    <message>Fix close_request_response when @request.async_close is nil</message>
    <tree>a25faf4975750796f81757a3c5cc7c36d77426be</tree>
    <committer>
      <name>Alexey Borzenkov</name>
      <email>snaury@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1d26f87cbfedb791069da3b06c5ea34c9ec58e30</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/8be9327a49919196ddaaf7cc605e38b271edeeb7</url>
    <id>8be9327a49919196ddaaf7cc605e38b271edeeb7</id>
    <committed-date>2009-03-16T19:15:28-07:00</committed-date>
    <authored-date>2009-03-16T19:15:28-07:00</authored-date>
    <message>Abstract some of Connection async logic into Request.</message>
    <tree>8abe5e45591f1c4fc632c0ffefabdcf2cba1a8a6</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>20a46fbc6da8bd603e1e99ee760392abdbafc067</id>
      </parent>
    </parents>
    <author>
      <name>Aman Gupta</name>
      <email>aman@tmm1.net</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/e56cdf601f3df911321f74584054467387fba5ef</url>
    <id>e56cdf601f3df911321f74584054467387fba5ef</id>
    <committed-date>2008-12-16T14:32:50-08:00</committed-date>
    <authored-date>2008-12-16T14:32:50-08:00</authored-date>
    <message>Add async.close deferrable which is triggered when the http connection is closed</message>
    <tree>9a1a3322c708e845b45f0c807192bcd5ea118990</tree>
    <committer>
      <name>Aman Gupta</name>
      <email>aman@tmm1.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d8c4afb86e1227621e3ca23f33b56d848373aee0</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/8ed760941d2061c51358b7140bc7c1cfa629f99b</url>
    <id>8ed760941d2061c51358b7140bc7c1cfa629f99b</id>
    <committed-date>2008-10-13T20:30:45-07:00</committed-date>
    <authored-date>2008-10-13T20:30:45-07:00</authored-date>
    <message>Debugged issue with failing pipeline spec. Cleaned up streaming body support to use respond_to?. Moved close connection handling into terminate_request.</message>
    <tree>aa9a186c9d8411b96a43ed37cd64032acd185eb7</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4b6f89c75b9fe8282b7fec561be1a0e563fad952</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/1430dc54c193684fe02038259eee6f50817da746</url>
    <id>1430dc54c193684fe02038259eee6f50817da746</id>
    <committed-date>2008-08-21T09:50:53-07:00</committed-date>
    <authored-date>2008-08-21T09:50:53-07:00</authored-date>
    <message>Added some minor bug fixes, still a breakage in persistent connections</message>
    <tree>0c9be3ca4a889b78d38b51bcbf8dc44d787f76f3</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>231f251a7bdf19b6394801dce01ba57eedda3056</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/4b6f89c75b9fe8282b7fec561be1a0e563fad952</url>
    <id>4b6f89c75b9fe8282b7fec561be1a0e563fad952</id>
    <committed-date>2008-08-21T09:45:59-07:00</committed-date>
    <authored-date>2008-08-21T09:45:59-07:00</authored-date>
    <message>Moved to a -1 status code for async responses</message>
    <tree>ed152d45b4f6e5cba90a07f89d80df28f284bef6</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>97f5e58c78cfafdb4aca446de1771da6b0de7878</id>
      </parent>
      <parent>
        <id>7ae3774fd1d12cb5b3f04630468088ea1de5e666</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/231f251a7bdf19b6394801dce01ba57eedda3056</url>
    <id>231f251a7bdf19b6394801dce01ba57eedda3056</id>
    <committed-date>2008-08-21T09:02:40-07:00</committed-date>
    <authored-date>2008-08-21T09:02:40-07:00</authored-date>
    <message>Merge commit 'origin/master' into async_for_rack

Conflicts:

	lib/thin/connection.rb</message>
    <tree>a8a692c246d64ad4ea1f51d18c88bf578f341336</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d7704d7cd0ea270b002d96ede181244dbe8f5ccb</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/692307873c71858036a810d839a61f3e79ac6ea7</url>
    <id>692307873c71858036a810d839a61f3e79ac6ea7</id>
    <committed-date>2008-08-02T07:43:14-07:00</committed-date>
    <authored-date>2008-08-02T06:17:49-07:00</authored-date>
    <message>Strip trailing whitespace and untabify connection.rb.</message>
    <tree>520bdcde58b36dd4ee51848c840e8c5bfad07032</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>cb6e21d6519c8da088f94864dec56c9122f2b753</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/2470ab0206716b445c23a1c81eb5f01dff06ad3a</url>
    <id>2470ab0206716b445c23a1c81eb5f01dff06ad3a</id>
    <committed-date>2008-08-02T07:43:14-07:00</committed-date>
    <authored-date>2008-08-02T06:14:36-07:00</authored-date>
    <message>More precise Connection#terminate_request documentation.</message>
    <tree>cd7d8ce9a4b975955a3b37f435890d06e4a9c822</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>37153518eb0ceba6f6f404ca630b8411449f3c17</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/cb6e21d6519c8da088f94864dec56c9122f2b753</url>
    <id>cb6e21d6519c8da088f94864dec56c9122f2b753</id>
    <committed-date>2008-08-02T07:43:14-07:00</committed-date>
    <authored-date>2008-08-02T06:13:15-07:00</authored-date>
    <message>Document what request termination means in Thin.</message>
    <tree>7b013e8ace514e4db8d80267a0a2c17d758317a7</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>83ac571627020bbc1e80fbeff20f07576c0f480b</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/37153518eb0ceba6f6f404ca630b8411449f3c17</url>
    <id>37153518eb0ceba6f6f404ca630b8411449f3c17</id>
    <committed-date>2008-08-02T07:43:13-07:00</committed-date>
    <authored-date>2008-08-02T06:10:35-07:00</authored-date>
    <message>Explicitly tell how errors are handled in the docs.</message>
    <tree>cac7c9d4f833ad29795e7a1f335c72bbfe995cb7</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7768691361ce51187cec1804a2d25507a11cf029</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/278a99aede1da58170aca6832353c5125423f12f</url>
    <id>278a99aede1da58170aca6832353c5125423f12f</id>
    <committed-date>2008-08-02T07:43:13-07:00</committed-date>
    <authored-date>2008-08-02T06:02:04-07:00</authored-date>
    <message>Log a warning if Rack application returns nil body.</message>
    <tree>a5bab0cb71f38d7f0c1c7ed99ba1d6c471b838e1</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b3537eef06401ba68ca1e1964f308e36fa89b543</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/553202ab66379e8b9a6866dd840d0f6a89078683</url>
    <id>553202ab66379e8b9a6866dd840d0f6a89078683</id>
    <committed-date>2008-08-02T07:43:13-07:00</committed-date>
    <authored-date>2008-07-21T18:44:22-07:00</authored-date>
    <message>Tiny doc addition to Thin::Connection#socket_address.</message>
    <tree>6fd2596c77f25523916661d127a5d7ea6cbe6f1a</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>044d58edad831e7cdb539cd2fc5a08a6f5438130</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/b3537eef06401ba68ca1e1964f308e36fa89b543</url>
    <id>b3537eef06401ba68ca1e1964f308e36fa89b543</id>
    <committed-date>2008-08-02T07:43:13-07:00</committed-date>
    <authored-date>2008-07-21T18:10:52-07:00</authored-date>
    <message>rescue Object =&gt; rescue Exception, take 3</message>
    <tree>a68dca5823656aeb1dbef807ca2457e3ef3c95a5</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a12575425150c8e6fc5221e1a6b1958b999313a5</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/044d58edad831e7cdb539cd2fc5a08a6f5438130</url>
    <id>044d58edad831e7cdb539cd2fc5a08a6f5438130</id>
    <committed-date>2008-08-02T07:43:13-07:00</committed-date>
    <authored-date>2008-07-21T18:09:03-07:00</authored-date>
    <message>Again, rescue Exception, not Object.</message>
    <tree>6dd74089d29fd4d0df21fafcbf10e0bfeeb9cc78</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>528a99a94f5fccfedb03fee21b5958fc0f566e42</id>
      </parent>
    </parents>
    <author>
      <name>Michael S. Klishin</name>
      <email>michael@novemberain.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/a12575425150c8e6fc5221e1a6b1958b999313a5</url>
    <id>a12575425150c8e6fc5221e1a6b1958b999313a5</id>
    <committed-date>2008-08-02T07:43:13-07:00</committed-date>
    <authored-date>2008-07-21T18:08:26-07:00</authored-date>
    <message>rescue Exception, not Object</message>
    <tree>cedd543369880681cb2bb8c3fbf26ed01783b778</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>affccc93679a419c8fca2f92fc11e006687bdf15</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/c9634028e70a830c15e755724197825651ec26a4</url>
    <id>c9634028e70a830c15e755724197825651ec26a4</id>
    <committed-date>2008-07-19T07:10:37-07:00</committed-date>
    <authored-date>2008-07-19T07:10:37-07:00</authored-date>
    <message>Add changelog entry for last commit</message>
    <tree>005b377ad460e28fc3c053f2e6d8c2fb14ad5ff7</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f99bd54ab90485a5be1bdb3f86600f5fc68728a9</id>
      </parent>
    </parents>
    <author>
      <name>Dan Kubb</name>
      <email>dan.kubb@autopilotmarketing.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/affccc93679a419c8fca2f92fc11e006687bdf15</url>
    <id>affccc93679a419c8fca2f92fc11e006687bdf15</id>
    <committed-date>2008-07-19T06:34:08-07:00</committed-date>
    <authored-date>2008-07-18T12:40:18-07:00</authored-date>
    <message>Add Content-Length header to response automatically when possible [#74 state:resolved]</message>
    <tree>f2bdb3301514db8c1e743a5b7bdd3d721765e567</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>57967535f061c16c537a08652813107835950576</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/97f5e58c78cfafdb4aca446de1771da6b0de7878</url>
    <id>97f5e58c78cfafdb4aca446de1771da6b0de7878</id>
    <committed-date>2008-07-15T06:20:05-07:00</committed-date>
    <authored-date>2008-07-15T06:20:05-07:00</authored-date>
    <message>Some response types are not arrays, and don't respond to #first, force an array (e.g. Rack::Response)</message>
    <tree>f7b48a709b3530cf67695aa12847887eb10c3952</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e1bfbe8c4202606e27d00ecb2fed2bf2ae4554b4</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/57967535f061c16c537a08652813107835950576</url>
    <id>57967535f061c16c537a08652813107835950576</id>
    <committed-date>2008-07-15T06:09:38-07:00</committed-date>
    <authored-date>2008-07-15T06:09:38-07:00</authored-date>
    <message>Fixed a crash on bad requests, minor code format corrections</message>
    <tree>79867cdf030991e7a068b76cb353d09c6848a991</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>891cfc764027bd32ee39373b984e18175d82b007</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/6bd039f6e2c1d489ce294f4e90da3dacdf27f1c4</url>
    <id>6bd039f6e2c1d489ce294f4e90da3dacdf27f1c4</id>
    <committed-date>2008-06-19T17:09:33-07:00</committed-date>
    <authored-date>2008-06-19T17:09:33-07:00</authored-date>
    <message>Correction - missing errback on deferrable body</message>
    <tree>959c02e8f83da42c8f20c35950d6b405d240a987</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>85865e10a5bc55743d43b6117e7668cac407ac74</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/0b805b73478c581363b8842a377afa8c7f4d065e</url>
    <id>0b805b73478c581363b8842a377afa8c7f4d065e</id>
    <committed-date>2008-06-18T16:08:39-07:00</committed-date>
    <authored-date>2008-06-18T16:08:39-07:00</authored-date>
    <message>Refactored api to that discussed in #rack. Added support for deferrable body data.</message>
    <tree>823236270363d9708a81fab509448706e4911c45</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>705c021050262561d9af8ca135e8db8624c6a7b6</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/85865e10a5bc55743d43b6117e7668cac407ac74</url>
    <id>85865e10a5bc55743d43b6117e7668cac407ac74</id>
    <committed-date>2008-06-17T17:12:51-07:00</committed-date>
    <authored-date>2008-06-17T17:12:51-07:00</authored-date>
    <message>API change for async, now uses throw :async, and callback is in the request env.</message>
    <tree>18e6501bca2e71df9613ced354d86a022132dc39</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b1900c6c690afd98989700ec6bac1cd2eaf9b13c</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/26b7373bd31b200f1f25ac86ff96397cc3b192ef</url>
    <id>26b7373bd31b200f1f25ac86ff96397cc3b192ef</id>
    <committed-date>2008-06-17T10:02:43-07:00</committed-date>
    <authored-date>2008-06-17T10:02:43-07:00</authored-date>
    <message>Refactored async design, now uses HTTP status code 100</message>
    <tree>bd9203dc693516a29db3d389a877d28ab0c0c350</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5ed596cb3059c3fe9bfc21fbee4ba0ad790b4474</id>
      </parent>
    </parents>
    <author>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/b1900c6c690afd98989700ec6bac1cd2eaf9b13c</url>
    <id>b1900c6c690afd98989700ec6bac1cd2eaf9b13c</id>
    <committed-date>2008-06-17T08:25:46-07:00</committed-date>
    <authored-date>2008-06-17T08:25:46-07:00</authored-date>
    <message>Initial working stab case of async processing. Doesn't conform to Lint sadly.</message>
    <tree>474946f4ab30fa86b6d98280a58481e60f8bed99</tree>
    <committer>
      <name>raggi</name>
      <email>jftucker@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>79f2a3257732004d06131172359688202b0362aa</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/a9acdec985583b0a9dd539417634b2c0eaee3b40</url>
    <id>a9acdec985583b0a9dd539417634b2c0eaee3b40</id>
    <committed-date>2008-04-18T19:38:06-07:00</committed-date>
    <authored-date>2008-04-18T19:38:06-07:00</authored-date>
    <message>Rescue all types of errors when processing request
[#62 state:resolved]</message>
    <tree>ea57a017e9209cb4dfbc02feb884715c5e1e7e92</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>c90f50f691e8325cd7a964b0a0d3b2052332a0ed</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/06439cf6a5ad3034ab7da732449e59e473b3a7c6</url>
    <id>06439cf6a5ad3034ab7da732449e59e473b3a7c6</id>
    <committed-date>2008-04-18T12:27:07-07:00</committed-date>
    <authored-date>2008-04-18T12:27:07-07:00</authored-date>
    <message>Make sure app.deferred?(env) is only called once per request</message>
    <tree>2d63d526fdfd431044e5b478e438a51f5a2ec653</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>77b0f725c399baf145a3631296edcfd60df839a4</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/b02c717f59378f71f11469d2698d96e8a7d197c4</url>
    <id>b02c717f59378f71f11469d2698d96e8a7d197c4</id>
    <committed-date>2008-04-08T17:41:50-07:00</committed-date>
    <authored-date>2008-04-08T17:41:50-07:00</authored-date>
    <message>Define deferred?(env) in your Rack application to set if a request is handled in a thread (return true) or not (return false).</message>
    <tree>caf1fa2a1a7336cdb614de1ceb2fdfe8149e99ca</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9ae43ca7aabfac13528cb1b58fdc9d7f987cef72</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/8968de296a0edc8a233ae8d7d2717615f0305815</url>
    <id>8968de296a0edc8a233ae8d7d2717615f0305815</id>
    <committed-date>2008-04-02T17:27:02-07:00</committed-date>
    <authored-date>2008-04-02T17:27:02-07:00</authored-date>
    <message>Set rack.multithread to true in threaded mode</message>
    <tree>cccad467243ee51544925aa823fc6e1e08ac0e59</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1e7d9b9926bb8fecf42ac06987f9aae739952d3a</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/4d3709fa0c2555fd63c91aff3ded50bd4774f6b2</url>
    <id>4d3709fa0c2555fd63c91aff3ded50bd4774f6b2</id>
    <committed-date>2008-03-28T20:37:58-07:00</committed-date>
    <authored-date>2008-03-28T20:37:58-07:00</authored-date>
    <message>* Add threaded option to run server in threaded mode, calling the application in a
  thread allowing for concurrency in the Rack adapter, closes #46</message>
    <tree>e587db69a3ee6471a2210782b72a017d59f166ce</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2c01c5f75680d291d2ce1003bad1219b5a5079ae</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/0fd4de53ce67d782aec5bacb763c091b011c0720</url>
    <id>0fd4de53ce67d782aec5bacb763c091b011c0720</id>
    <committed-date>2008-03-06T17:27:20-08:00</committed-date>
    <authored-date>2008-03-06T17:27:20-08:00</authored-date>
    <message>Doc love</message>
    <tree>77528050e686145b9ca0eb431d065c7384999516</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>659446428f3dc609addbe940b26eb0d5638577e6</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/b686394e285dd2e188aa990bafc94d31a12ed92f</url>
    <id>b686394e285dd2e188aa990bafc94d31a12ed92f</id>
    <committed-date>2008-02-28T18:23:39-08:00</committed-date>
    <authored-date>2008-02-28T18:23:39-08:00</authored-date>
    <message>Rename Connector to Backend. Extend Thin::Backends::Base to implement your own.</message>
    <tree>e3a26d921d2e672f41ed49031e83739d94c0cb84</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>742a7b74aaaad3a6ac81f06dc94f724c24b15594</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/2b7d72da3fd20c760eafefa2ad569fa77a6846c0</url>
    <id>2b7d72da3fd20c760eafefa2ad569fa77a6846c0</id>
    <committed-date>2008-02-20T19:57:05-08:00</committed-date>
    <authored-date>2008-02-20T19:57:05-08:00</authored-date>
    <message>* Add --max-persistent-conns option to sets the maximum number of persistent connections.
  Set to 0 to disable Keep-Alive.</message>
    <tree>e4e203a5877815f94922a690ae430f8a0e6793a9</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0e1eaf123a113403f3517f0bf7d35928dd40d48e</id>
      </parent>
    </parents>
    <author>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </author>
    <url>http://github.com/macournoyer/thin/commit/434ca28bfbadff572b66d57c5d699513036edc5e</url>
    <id>434ca28bfbadff572b66d57c5d699513036edc5e</id>
    <committed-date>2008-02-19T21:38:54-08:00</committed-date>
    <authored-date>2008-02-19T21:38:54-08:00</authored-date>
    <message>INT signal now force stop and QUIT signal graceful stop.</message>
    <tree>046940e1aa0643eebd25e5713d052dd63fe4b42b</tree>
    <committer>
      <name>macournoyer</name>
      <email>macournoyer@gmail.com</email>
    </committer>
  </commit>
</commits>
