Class: Puppet::Util::Pidlock

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/util/pidlock.rb

Instance Method Summary collapse

Constructor Details

#initialize(lockfile) ⇒ Pidlock


6
7
8
# File 'lib/puppet/util/pidlock.rb', line 6

def initialize(lockfile)
  @lockfile = Puppet::Util::Lockfile.new(lockfile)
end

Instance Method Details

#file_pathObject


42
43
44
# File 'lib/puppet/util/pidlock.rb', line 42

def file_path
  @lockfile.file_path
end

#lockObject


19
20
21
22
23
# File 'lib/puppet/util/pidlock.rb', line 19

def lock
  return mine? if locked?

  @lockfile.lock(Process.pid)
end

#lock_pidObject


33
34
35
36
37
38
39
40
# File 'lib/puppet/util/pidlock.rb', line 33

def lock_pid
  pid = @lockfile.lock_data
  begin
    Integer(pid)
  rescue ArgumentError, TypeError
    nil
  end
end

#locked?Boolean


10
11
12
13
# File 'lib/puppet/util/pidlock.rb', line 10

def locked?
  clear_if_stale
  @lockfile.locked?
end

#mine?Boolean


15
16
17
# File 'lib/puppet/util/pidlock.rb', line 15

def mine?
  Process.pid == lock_pid
end

#unlockObject


25
26
27
28
29
30
31
# File 'lib/puppet/util/pidlock.rb', line 25

def unlock
  if mine?
    return @lockfile.unlock
  else
    false
  end
end