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

Returns a new instance of 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

Returns:

  • (Boolean)


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

def locked?
  clear_if_stale
  @lockfile.locked?
end

#mine?Boolean

Returns:

  • (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