Module: Sqreen::WebServer::Puma
- Defined in:
- lib/sqreen/web_server/puma.rb
Class Method Summary collapse
Instance Method Summary collapse
- #after_fork ⇒ Object
- #before_fork ⇒ Object
- #forking? ⇒ Boolean
- #master? ⇒ Boolean
- #preload_app? ⇒ Boolean
Class Method Details
.active? ⇒ Boolean
9 10 11 |
# File 'lib/sqreen/web_server/puma.rb', line 9 def self.active? Sqreen::Dependency.const_exist?('Puma::Runner') && ObjectSpace.each_object(::Puma::Runner).count > 0 end |
Instance Method Details
#after_fork ⇒ Object
40 41 42 43 44 45 |
# File 'lib/sqreen/web_server/puma.rb', line 40 def after_fork after_fork = lambda do |_| yield end (configuration.[:before_worker_boot] ||= []) << after_fork end |
#before_fork ⇒ Object
33 34 35 36 37 38 |
# File 'lib/sqreen/web_server/puma.rb', line 33 def before_fork before_fork = lambda do |_ = nil| # 3.x sends an arg but <3.0 doesn't yield end (configuration.[:before_fork] || []) << before_fork end |
#forking? ⇒ Boolean
13 14 15 |
# File 'lib/sqreen/web_server/puma.rb', line 13 def forking? !cluster.nil? end |
#master? ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/sqreen/web_server/puma.rb', line 21 def master? # HACK: expects outside calling timimg # - with preloading, this is hit early in master and records its PID # - without preloading but forking, the app will be loaded in the child, so recorded PID stays nil # - without forking, master makes no sense, recorded PID stays nil master! if preload_app? Sqreen.log.debug "[#{Process.pid}] master? #{@master_pid == Process.pid}" @master_pid == Process.pid end |
#preload_app? ⇒ Boolean
17 18 19 |
# File 'lib/sqreen/web_server/puma.rb', line 17 def preload_app? forking? && (cluster && cluster.preload? || false) end |