summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5e63840)
raw | patch | inline | side by side (parent: 5e63840)
| author | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
| Thu, 20 Feb 2003 22:56:49 +0000 (22:56 +0000) | ||
| committer | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
| Thu, 20 Feb 2003 22:56:49 +0000 (22:56 +0000) |
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1537 57a73879-2fb5-44c3-a270-3262357dd7e2
| roundup/backends/locking.py | patch | blob | history | |
| roundup/backends/portalocker.py | patch | blob | history |
index 0799bb5c4e9fcdbc3c7788960fc5c15a5f7edb41..45223286a6e9d01074f438c6fa0b492647c620c9 100644 (file)
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-# $Id: locking.py,v 1.5 2003-02-14 00:08:32 richard Exp $
+# $Id: locking.py,v 1.6 2003-02-20 22:56:49 richard Exp $
'''This module provides a generic interface to acquire and release
exclusive access to a file.
It should work on Unix and Windows.
'''
+# portalocker has a 0xffff0000 constant, and I don't need to know about it
+# being positive in 2.4+ :)
+try:
+ x=FutureWarning
+ import warnings
+ warnings.filterwarnings("ignore",
+ r'hex/oct constants > sys\.maxint .*', FutureWarning,
+ 'portalocker', 0)
+ del x
+except:
+ pass
+
import portalocker
def acquire_lock(path, block=1):
index daf8b0fcebb3449746dc2f82cbdd93778d14540f..a062701dcd5de78b7f5b3c08852a41751fda136c 100644 (file)
# Requires python 1.5.2 or better.
# ID line added by richard for Roundup file tracking
-# $Id: portalocker.py,v 1.4 2003-02-14 00:08:32 richard Exp $
+# $Id: portalocker.py,v 1.5 2003-02-20 22:56:49 richard Exp $
""" Cross-platform (posix/nt) API for flock-style file locking.
# Try LockFileEx first, as it has more functionality and handles
# blocking locks more efficiently.
try:
- win32file.LockFileEx(hfile, flags, 0, 0xffff0000L, __overlapped)
+ win32file.LockFileEx(hfile, flags, 0, 0xffff0000, __overlapped)
except win32file.error, e:
import winerror
# Propagate upwards all exceptions other than not-implemented.
warnings.warn("PortaLocker does not support shared locking on Win9x", RuntimeWarning)
# LockFile only supports immediate-fail locking.
if flags & LOCK_NB:
- win32file.LockFile(hfile, 0, 0, 0xffff0000L, 0)
+ win32file.LockFile(hfile, 0, 0, 0xffff0000, 0)
else:
# Emulate a blocking lock with a polling loop.
import time
while 1:
# Attempt a lock.
try:
- win32file.LockFile(hfile, 0, 0, 0xffff0000L, 0)
+ win32file.LockFile(hfile, 0, 0, 0xffff0000, 0)
break
except win32file.error, e:
# Propagate upwards all exceptions other than lock violation.
# UnlockFileEx is not supported on all Win32 platforms (Win95, Win98, WinME).
# If it's not supported, win32file will raise an api_error exception.
try:
- win32file.UnlockFileEx(hfile, 0, 0xffff0000L, __overlapped)
+ win32file.UnlockFileEx(hfile, 0, 0xffff0000, __overlapped)
except win32file.error, e:
import winerror
# Propagate upwards all exceptions other than not-implemented.
# UnlockFileEx is not supported. Use UnlockFile.
# Care: the low/high length params are reversed compared to UnLockFileEx.
- win32file.UnlockFile(hfile, 0, 0, 0xffff0000L, 0)
+ win32file.UnlockFile(hfile, 0, 0, 0xffff0000, 0)
elif os.name =='posix':
def lock(file, flags):