| Server IP : 77.68.64.21 / Your IP : 216.73.217.105 Web Server : Apache System : Linux hp3-wp-1011378.hostingp3.local 3.10.0-1160.144.1.el7.tuxcare.els9.x86_64 #1 SMP Fri Jul 10 17:06:31 UTC 2026 x86_64 User : csh2668128 ( 2112425) PHP Version : 8.1.34 Disable Function : shell_exec,exec,system,popen,set_time_limit MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/ruby/vendor_ruby/puppet/util/ |
Upload File : |
require 'fileutils'
require 'puppet/util/lockfile'
class Puppet::Util::Pidlock
def initialize(lockfile)
@lockfile = Puppet::Util::Lockfile.new(lockfile)
end
def locked?
clear_if_stale
@lockfile.locked?
end
def mine?
Process.pid == lock_pid
end
def lock
return mine? if locked?
@lockfile.lock(Process.pid)
end
def unlock()
if mine?
return @lockfile.unlock
else
false
end
end
def lock_pid
@lockfile.lock_data.to_i
end
def file_path
@lockfile.file_path
end
def clear_if_stale
return if lock_pid.nil?
errors = [Errno::ESRCH]
# Process::Error can only happen, and is only defined, on Windows
errors << Process::Error if defined? Process::Error
begin
Process.kill(0, lock_pid)
rescue *errors
@lockfile.unlock
end
end
private :clear_if_stale
end