diff options
-rw-r--r-- | lib/rainbows.rb | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/lib/rainbows.rb b/lib/rainbows.rb index 64c4d9e..0b6402a 100644 --- a/lib/rainbows.rb +++ b/lib/rainbows.rb @@ -39,6 +39,21 @@ module Rainbows def run(app, options = {}) HttpServer.new(app, options).start.join end + + # returns nil if accept fails + if defined?(Fcntl::FD_CLOEXEC) + def accept(sock) + rv = sock.accept_nonblock + rv.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) + rv + rescue Errno::EAGAIN, Errno::ECONNABORTED + end + else + def accept(sock) + sock.accept_nonblock + rescue Errno::EAGAIN, Errno::ECONNABORTED + end + end end # configures \Rainbows! with a given concurrency model to +use+ and @@ -94,21 +109,6 @@ module Rainbows end autoload :Fiber, 'rainbows/fiber' # core class - # returns nil if accept fails - if defined?(Fcntl::FD_CLOEXEC) - def self.accept(sock) - rv = sock.accept_nonblock - rv.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) - rv - rescue Errno::EAGAIN, Errno::ECONNABORTED - end - else - def self.accept(sock) - sock.accept_nonblock - rescue Errno::EAGAIN, Errno::ECONNABORTED - end - end - end # inject the Rainbows! method into Unicorn::Configurator |