Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Unified Diff: third_party/twisted_8_1/twisted/python/lockfile.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/twisted_8_1/twisted/python/htmlizer.py ('k') | third_party/twisted_8_1/twisted/python/log.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/twisted_8_1/twisted/python/lockfile.py
diff --git a/third_party/twisted_8_1/twisted/python/lockfile.py b/third_party/twisted_8_1/twisted/python/lockfile.py
deleted file mode 100644
index a6750d711fad0a3d036cbb6c8d1601780fda436e..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/python/lockfile.py
+++ /dev/null
@@ -1,143 +0,0 @@
-# -*- test-case-name: twisted.test.test_lockfile -*-
-# Copyright (c) 2005 Divmod, Inc.
-# See LICENSE for details.
-
-
-"""
-Lock files.
-"""
-
-__metaclass__ = type
-
-import errno, os
-
-from time import time as _uniquefloat
-
-def unique():
- return str(long(_uniquefloat() * 1000))
-
-try:
- from os import symlink
- from os import readlink
- from os import remove as rmlink
- from os import rename as mvlink
-except:
- # XXX Implement an atomic thingamajig for win32
- import shutil
- def symlink(value, filename):
- newlinkname = filename+"."+unique()+'.newlink'
- newvalname = os.path.join(newlinkname,"symlink")
- os.mkdir(newlinkname)
- f = open(newvalname,'wb')
- f.write(value)
- f.flush()
- f.close()
- try:
- os.rename(newlinkname, filename)
- except:
- os.remove(newvalname)
- os.rmdir(newlinkname)
- raise
-
- def readlink(filename):
- return open(os.path.join(filename,'symlink'),'rb').read()
-
- def rmlink(filename):
- shutil.rmtree(filename)
-
- def mvlink(src, dest):
- try:
- shutil.rmtree(dest)
- except:
- pass
- os.rename(src,dest)
-
-
-class FilesystemLock:
- """A mutex.
-
- This relies on the filesystem property that creating
- a symlink is an atomic operation and that it will
- fail if the symlink already exists. Deleting the
- symlink will release the lock.
-
- @ivar name: The name of the file associated with this lock.
- @ivar clean: Indicates whether this lock was released cleanly by its
- last owner. Only meaningful after C{lock} has been called and returns
- True.
- """
-
- clean = None
- locked = False
-
- def __init__(self, name):
- self.name = name
-
- def lock(self):
- """Acquire this lock.
-
- @rtype: C{bool}
- @return: True if the lock is acquired, false otherwise.
-
- @raise: Any exception os.symlink() may raise, other than
- EEXIST.
- """
- try:
- pid = readlink(self.name)
- except (OSError, IOError), e:
- if e.errno != errno.ENOENT:
- raise
- self.clean = True
- else:
- if not hasattr(os, 'kill'):
- return False
- try:
- os.kill(int(pid), 0)
- except (OSError, IOError), e:
- if e.errno != errno.ESRCH:
- raise
- rmlink(self.name)
- self.clean = False
- else:
- return False
-
- symlink(str(os.getpid()), self.name)
- self.locked = True
- return True
-
- def unlock(self):
- """Release this lock.
-
- This deletes the directory with the given name.
-
- @raise: Any exception os.readlink() may raise, or
- ValueError if the lock is not owned by this process.
- """
- pid = readlink(self.name)
- if int(pid) != os.getpid():
- raise ValueError("Lock %r not owned by this process" % (self.name,))
- rmlink(self.name)
- self.locked = False
-
-
-def isLocked(name):
- """Determine if the lock of the given name is held or not.
-
- @type name: C{str}
- @param name: The filesystem path to the lock to test
-
- @rtype: C{bool}
- @return: True if the lock is held, False otherwise.
- """
- l = FilesystemLock(name)
- result = None
- try:
- result = l.lock()
- finally:
- if result:
- l.unlock()
- return not result
-
-
-__all__ = ['FilesystemLock', 'isLocked']
-
« no previous file with comments | « third_party/twisted_8_1/twisted/python/htmlizer.py ('k') | third_party/twisted_8_1/twisted/python/log.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698