labm8.lockfile¶
Lock file mechanism.
-
exception
labm8.lockfile.Error¶
-
class
labm8.lockfile.LockFile(path)¶ A lock file.
-
path¶ str – Path of lock file.
-
acquire(replace_stale=False, force=False)¶ Acquire the lock.
- A lock can be claimed if any of these conditions are true:
- The lock is unheld by anyone.
- The lock is held but the ‘force’ argument is set.
- The lock is held by the current process.
Parameters: - replace_stale (bool, optional) – stale processes. A stale process is one which currently owns the parent lock, but no process with that PID is alive.
- force (bool, optional) – If true, ignore any existing lock. If false, fail if lock already claimed.
Returns: self.
Return type: Raises: UnableToAcquireLockError– If the lock is already claimed (not raised if force option is used).
-
date¶ The date that the lock was acquired. Value is None if lock is unclaimed.
-
islocked¶ Whether the directory is locked.
-
owned_by_self¶ Whether the directory is locked by the current process.
-
pid¶ The process ID of the lock. Value is None if lock is not claimed.
-
static
read(path)¶ Read the contents of a LockFile.
Parameters: path (str) – Path to lockfile. Returns: - The integer PID of the lock owner, and the
- date the lock was required. If the lock is not claimed, both values are None.
Return type: Tuple(int, datetime)
-
release(force=False)¶ Release lock.
To release a lock, we must already own the lock.
Parameters: force (bool, optional) – If true, ignore any existing lock owner. Raises: UnableToReleaseLockError– If the lock is claimed by another process (not raised if force option is used).
-
static
write(path, pid, timestamp)¶ Write the contents of a LockFile.
Parameters: - path (str) – Path to lockfile.
- pid (int) – The integer process ID.
- timestamp (datetime) – The time the lock was aquired.
-
-
exception
labm8.lockfile.UnableToAcquireLockError(lock)¶ thrown if cannot acquire lock
-
exception
labm8.lockfile.UnableToReleaseLockError(lock)¶ thrown if cannot release lock