Sha256: 907f02984de513d2c7bd389e045d41241248d66e8d66f7e5be7325d75643a37a
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
module Eye::Process::Children def add_children add_or_update_children end def add_or_update_children return unless self[:monitor_children] return unless self.up? return if @updating_children @updating_children = true unless self.pid warn "can't add children; pid not set" return end now_children = Eye::SystemResources.children(self.pid) new_children = [] exist_children = [] now_children.each do |child_pid| if self.children[child_pid] exist_children << child_pid else new_children << child_pid end end removed_children = self.children.keys - now_children if new_children.present? new_children.each do |child_pid| self.children[child_pid] = Eye::ChildProcess.new(child_pid, self[:monitor_children], logger.prefix) end end if removed_children.present? removed_children.each{|child_pid| remove_child(child_pid) } end h = {:new => new_children.size, :removed => removed_children.size, :exists => exist_children.size } debug "children info: #{ h.inspect }" @updating_children = false h end def remove_children if children.present? children.keys.each{|child_pid| remove_child(child_pid) } end end def remove_child(child_pid) child = self.children.delete(child_pid) child.destroy if child && child.alive? end end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
reel-eye-0.5.2.1 | lib/eye/process/children.rb |
reel-eye-0.5.2 | lib/eye/process/children.rb |
eye-0.5.2 | lib/eye/process/children.rb |