Sha256: b673c8f6ccd987b6422de0eee0ef2543d59eff8032da178ac73463ea0d5d82cb
Contents?: true
Size: 1.29 KB
Versions: 16
Compression:
Stored size: 1.29 KB
Contents
# Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.io/terms.html module Sqreen module WebServer module Unicorn def self.active? Sqreen::Dependency.const_exist?('Unicorn::SocketHelper') && ObjectSpace.each_object(::Unicorn::SocketHelper).count > 0 end def forking? true end def master? !master.nil? end def preload_app? ObjectSpace.each_object(::Unicorn::HttpServer).first.preload_app end 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 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 private 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 end end end
Version data entries
16 entries across 16 versions & 1 rubygems