module Sqreen::WebServer::Unicorn

Public Class Methods

active?() click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 9
def self.active?
  Sqreen::Dependency.const_exist?('Unicorn::SocketHelper') && ObjectSpace.each_object(::Unicorn::SocketHelper).count > 0
end

Public Instance Methods

after_fork() { || ... } click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 33
def after_fork
  after_fork = master.after_fork
  after_fork_wrapper = lambda do |a, b|
    after_fork.call(a, b).tap { yield }
  end
  master.after_fork = after_fork_wrapper
end
before_fork() { || ... } click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 25
def before_fork
  before_fork = master.before_fork
  before_fork_wrapper = lambda do |a, b|
    before_fork.call(a, b).tap { yield }
  end
  master.before_fork = before_fork_wrapper
end
forking?() click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 13
def forking?
  true
end
master?() click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 17
def master?
  !master.nil?
end
preload_app?() click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 21
def preload_app?
  ObjectSpace.each_object(::Unicorn::HttpServer).first.preload_app
end

Private Instance Methods

master() click to toggle source
# File lib/sqreen/web_server/unicorn.rb, line 43
def master
  ObjectSpace.each_object(::Unicorn::HttpServer).select do |s|
    if s.is_a? Struct # unicorn <2.0
      s.master_pid == Process.pid
    else
      s.instance_eval { @master_pid } == Process.pid
    end
  end.first
end