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

Version Path
sqreen-1.18.6-java lib/sqreen/web_server/unicorn.rb
sqreen-1.18.6 lib/sqreen/web_server/unicorn.rb
sqreen-1.18.5-java lib/sqreen/web_server/unicorn.rb
sqreen-1.18.5 lib/sqreen/web_server/unicorn.rb
sqreen-1.18.4-java lib/sqreen/web_server/unicorn.rb
sqreen-1.18.4 lib/sqreen/web_server/unicorn.rb
sqreen-1.18.3-java lib/sqreen/web_server/unicorn.rb
sqreen-1.18.3 lib/sqreen/web_server/unicorn.rb
sqreen-1.18.3.beta2 lib/sqreen/web_server/unicorn.rb
sqreen-1.18.3.beta1 lib/sqreen/web_server/unicorn.rb
sqreen-1.18.2-java lib/sqreen/web_server/unicorn.rb
sqreen-1.18.2 lib/sqreen/web_server/unicorn.rb