Sha256: 34e53da220601b349db7c1c809a01e898df7d372f5c1e8e373df2d081a8e5908
Contents?: true
Size: 1.29 KB
Versions: 12
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.com/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
12 entries across 12 versions & 1 rubygems