ports/devel/py-daemon/files/patch-daemon-pidlockfile.py
Li-Wen Hsu 48918810a4 - Add a patch that fixes py-daemon to use the new py-lockfile API
PR:		ports/149944
Submitted by:	Jesse Kempf <jkempf AT davisvision.com>
Approved by:	Jesse Kempf <jessekempf AT gmail.com> (maintainer)
2010-08-25 06:27:27 +00:00

72 lines
2.1 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--- daemon/pidlockfile.py.orig 2010-08-24 16:57:37.753374406 +0000
+++ daemon/pidlockfile.py 2010-08-24 16:58:57.825989360 +0000
@@ -22,6 +22,7 @@
NotLocked, NotMyLock,
)
+from lockfile.pidlockfile import PIDLockFile
class PIDFileError(Exception):
""" Abstract base class for errors specific to PID files. """
@@ -30,61 +31,6 @@
""" Raised when parsing contents of PID file fails. """
-class PIDLockFile(LinkFileLock, object):
- """ Lockfile implemented as a Unix PID file.
-
- The PID file is named by the attribute `path`. When locked,
- the file will be created with a single line of text,
- containing the process ID (PID) of the process that acquired
- the lock.
-
- The lock is acquired and maintained as per `LinkFileLock`.
-
- """
-
- def read_pid(self):
- """ Get the PID from the lock file.
- """
- result = read_pid_from_pidfile(self.path)
- return result
-
- def acquire(self, *args, **kwargs):
- """ Acquire the lock.
-
- Locks the PID file then creates the PID file for this
- lock. The `timeout` parameter is used as for the
- `LinkFileLock` class.
-
- """
- super(PIDLockFile, self).acquire(*args, **kwargs)
- try:
- write_pid_to_pidfile(self.path)
- except OSError, exc:
- error = LockFailed("%(exc)s" % vars())
- raise error
-
- def release(self):
- """ Release the lock.
-
- Removes the PID file then releases the lock, or raises an
- error if the current process does not hold the lock.
-
- """
- if self.i_am_locking():
- remove_existing_pidfile(self.path)
- super(PIDLockFile, self).release()
-
- def break_lock(self):
- """ Break an existing lock.
-
- If the lock is held, breaks the lock and removes the PID
- file.
-
- """
- super(PIDLockFile, self).break_lock()
- remove_existing_pidfile(self.path)
-
-
class TimeoutPIDLockFile(PIDLockFile):
""" Lockfile with default timeout, implemented as a Unix PID file.