<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -68,9 +68,10 @@ OptionParser.new do |opts|
 end.parse!
 
 if command = ARGV[0]
-  if !%w{reload-handlers}.include?(command)
+  if !%w{reload-handlers stats}.include?(command)
     puts &quot;Invlalid command. Valid commands are:&quot;
     puts &quot;  reload-handlers&quot;
+    puts &quot;  stats&quot;
     exit(1)
   end
 </diff>
      <filename>bin/ernie</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 -behaviour(gen_server).
 
 %% api
--export([start_link/1, start/1, lease/0, return/1, reload_assets/0]).
+-export([start_link/1, start/1, lease/0, return/1, reload_assets/0, idle_worker_count/0]).
 
 %% gen_server callbacks
 -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
@@ -31,6 +31,9 @@ return(Asset) -&gt;
 reload_assets() -&gt;
   gen_server:call({global, ?MODULE}, {reload_assets}).
 
+idle_worker_count() -&gt;
+  gen_server:call({global, ?MODULE}, {idle_worker_count}).
+
 %%====================================================================
 %% gen_server callbacks
 %%====================================================================
@@ -91,6 +94,9 @@ handle_call({return, Asset}, _From, State) -&gt;
 handle_call({reload_assets}, _From, State) -&gt;
   Token = make_ref(),
   {reply, ok, State#state{token = Token}};
+handle_call({idle_worker_count}, _From, State) -&gt;
+  WorkerCount = queue:len(State#state.assets),
+  {reply, WorkerCount, State};
 handle_call(_Request, _From, State) -&gt;
   {reply, ok, State}.
 </diff>
      <filename>elib/asset_pool.erl</filename>
    </modified>
    <modified>
      <diff>@@ -126,6 +126,14 @@ process_admin(Sock, reload_handlers, _Args, State) -&gt;
   gen_tcp:send(Sock, term_to_binary({reply, &lt;&lt;&quot;Handlers reloaded.&quot;&gt;&gt;})),
   ok = gen_tcp:close(Sock),
   State;
+process_admin(Sock, stats, _Args, State) -&gt;
+  IdleWorkers = asset_pool:idle_worker_count(),
+  IdleWorkersString = list_to_binary([&lt;&lt;&quot;idle workers: &quot;&gt;&gt;, integer_to_list(IdleWorkers), &lt;&lt;&quot;\n&quot;&gt;&gt;]),
+  QueueLength = queue:len(State#state.pending),
+  QueueLengthString = list_to_binary([&lt;&lt;&quot;pending connections: &quot;&gt;&gt;, integer_to_list(QueueLength), &lt;&lt;&quot;\n&quot;&gt;&gt;]),
+  gen_tcp:send(Sock, term_to_binary({reply, list_to_binary([IdleWorkersString, QueueLengthString])})),
+  ok = gen_tcp:close(Sock),
+  State;
 process_admin(Sock, _Fun, _Args, State) -&gt;
   gen_tcp:send(Sock, term_to_binary({reply, &lt;&lt;&quot;Admin function not supported.&quot;&gt;&gt;})),
   ok = gen_tcp:close(Sock),</diff>
      <filename>elib/ernie_server.erl</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f4301e0c469dbfd835706d02133c56915d2d3596</id>
    </parent>
  </parents>
  <author>
    <name>Tom Preston-Werner</name>
    <email>tom@mojombo.com</email>
  </author>
  <url>http://github.com/mojombo/ernie/commit/a23e8414645af99774eed7914f5f8e78f67ba5b8</url>
  <id>a23e8414645af99774eed7914f5f8e78f67ba5b8</id>
  <committed-date>2009-08-20T16:57:00-07:00</committed-date>
  <authored-date>2009-08-20T16:57:00-07:00</authored-date>
  <message>add stats introspection</message>
  <tree>e19310332f457e91b4821de72d811a61c9b05f44</tree>
  <committer>
    <name>Tom Preston-Werner</name>
    <email>tom@mojombo.com</email>
  </committer>
</commit>
