about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/mongrel.rb16
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index 15d5aee..b06e071 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
@@ -276,18 +276,16 @@ module Mongrel
           while true
             begin
               client = @socket.accept
-  
-              if defined?($tcp_cork_opts) and $tcp_cork_opts
-                client.setsockopt(*$tcp_cork_opts) rescue nil
-              end
-  
-              worker_list = @workers.list
-  
-              if worker_list.length >= @num_processors
-                Mongrel.log(:error, "#{Time.now.httpdate}: Server overloaded with #{worker_list.length} processors (#@num_processors max). Dropping connection.")
+
+              num_workers = @workers.list.length
+              if num_workers >= @num_processors
+                Mongrel.log(:error, "#{Time.now.httpdate}: Server overloaded with #{num_workers} processors (#@num_processors max). Dropping connection.")
                 client.close rescue nil
                 reap_dead_workers("max processors")
               else
+                if defined?($tcp_cork_opts) and $tcp_cork_opts
+                  client.setsockopt(*$tcp_cork_opts) rescue nil
+                end
                 thread = Thread.new(client) {|c| process_client(c) }
                 thread[:started_on] = Time.now
                 @workers.add(thread)