diff options
author | 2015-08-26 15:33:20 +0300 | |
---|---|---|
committer | 2015-08-26 15:33:20 +0300 | |
commit | f15923902c4259978b952ed4b6aef2db4c9f430b (patch) | |
tree | 27e26627964bab4bd020e696a6d6f71d77515d04 /external_libs/python/lockfile-0.10.2/lockfile/symlinklockfile.py | |
parent | fc46f2618332037a8c1b58fbce5d616033bff1c9 (diff) |
remove old python
Diffstat (limited to 'external_libs/python/lockfile-0.10.2/lockfile/symlinklockfile.py')
-rw-r--r-- | external_libs/python/lockfile-0.10.2/lockfile/symlinklockfile.py | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/external_libs/python/lockfile-0.10.2/lockfile/symlinklockfile.py b/external_libs/python/lockfile-0.10.2/lockfile/symlinklockfile.py deleted file mode 100644 index 57551a36..00000000 --- a/external_libs/python/lockfile-0.10.2/lockfile/symlinklockfile.py +++ /dev/null @@ -1,69 +0,0 @@ -from __future__ import absolute_import - -import time -import os - -from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout, - AlreadyLocked) - -class SymlinkLockFile(LockBase): - """Lock access to a file using symlink(2).""" - - def __init__(self, path, threaded=True, timeout=None): - # super(SymlinkLockFile).__init(...) - LockBase.__init__(self, path, threaded, timeout) - # split it back! - self.unique_name = os.path.split(self.unique_name)[1] - - def acquire(self, timeout=None): - # Hopefully unnecessary for symlink. - #try: - # open(self.unique_name, "wb").close() - #except IOError: - # raise LockFailed("failed to create %s" % self.unique_name) - timeout = timeout is not None and timeout or self.timeout - end_time = time.time() - if timeout is not None and timeout > 0: - end_time += timeout - - while True: - # Try and create a symbolic link to it. - try: - os.symlink(self.unique_name, self.lock_file) - except OSError: - # Link creation failed. Maybe we've double-locked? - if self.i_am_locking(): - # Linked to out unique name. Proceed. - return - else: - # Otherwise the lock creation failed. - if timeout is not None and time.time() > end_time: - if timeout > 0: - raise LockTimeout("Timeout waiting to acquire" - " lock for %s" % - self.path) - else: - raise AlreadyLocked("%s is already locked" % - self.path) - time.sleep(timeout/10 if timeout is not None else 0.1) - else: - # Link creation succeeded. We're good to go. - return - - def release(self): - if not self.is_locked(): - raise NotLocked("%s is not locked" % self.path) - elif not self.i_am_locking(): - raise NotMyLock("%s is locked, but not by me" % self.path) - os.unlink(self.lock_file) - - def is_locked(self): - return os.path.islink(self.lock_file) - - def i_am_locking(self): - return os.path.islink(self.lock_file) and \ - os.readlink(self.lock_file) == self.unique_name - - def break_lock(self): - if os.path.islink(self.lock_file): # exists && link - os.unlink(self.lock_file) |