diff options
author | Davanum Srinivas <davanum@gmail.com> | 2015-09-07 16:05:56 -0400 |
---|---|---|
committer | Davanum Srinivas <davanum@gmail.com> | 2015-09-07 16:08:41 -0400 |
commit | 333cbd39a50e5908136f9270a354ff5d1f6b6956 (patch) | |
tree | 2caf1be4cdddd56931c6b5d5ae4add4078c879e6 | |
parent | c2a504863979348b552bc054664fef01b3828969 (diff) | |
download | lockfile-333cbd39a50e5908136f9270a354ff5d1f6b6956.tar.gz |
lockfile.acquire doesn't accept a timeout of 0
Docs indicates that lock.acquire(timeout=0) would not block, but it
does (for linklockfile) because 0 is not truthy, and the line:
timeout = timeout is not None and timeout or self.timeout
when timeout is 0 causes it to default to self.timeout, which by default is None.
So rewrite the condition better to take into account that timeout may
be set to 0.
Closes-Bug: #1468124
Closes-Bug: #1419127
Change-Id: Idf0d00977e79661e1eafd695d6e148e5f27e1840
-rw-r--r-- | lockfile/linklockfile.py | 2 | ||||
-rw-r--r-- | lockfile/mkdirlockfile.py | 2 | ||||
-rw-r--r-- | lockfile/pidlockfile.py | 2 | ||||
-rw-r--r-- | lockfile/sqlitelockfile.py | 2 | ||||
-rw-r--r-- | lockfile/symlinklockfile.py | 2 |
5 files changed, 5 insertions, 5 deletions
diff --git a/lockfile/linklockfile.py b/lockfile/linklockfile.py index 9c50673..ab5e1f2 100644 --- a/lockfile/linklockfile.py +++ b/lockfile/linklockfile.py @@ -19,7 +19,7 @@ class LinkLockFile(LockBase): except IOError: raise LockFailed("failed to create %s" % self.unique_name) - timeout = timeout is not None and timeout or self.timeout + timeout = timeout if timeout is not None else self.timeout end_time = time.time() if timeout is not None and timeout > 0: end_time += timeout diff --git a/lockfile/mkdirlockfile.py b/lockfile/mkdirlockfile.py index 8d2c801..caf462e 100644 --- a/lockfile/mkdirlockfile.py +++ b/lockfile/mkdirlockfile.py @@ -24,7 +24,7 @@ class MkdirLockFile(LockBase): self.pid)) def acquire(self, timeout=None): - timeout = timeout is not None and timeout or self.timeout + timeout = timeout if timeout is not None else self.timeout end_time = time.time() if timeout is not None and timeout > 0: end_time += timeout diff --git a/lockfile/pidlockfile.py b/lockfile/pidlockfile.py index e92f9ea..6d042d7 100644 --- a/lockfile/pidlockfile.py +++ b/lockfile/pidlockfile.py @@ -70,7 +70,7 @@ class PIDLockFile(LockBase): the lock could not be acquired. """ - timeout = timeout is not None and timeout or self.timeout + timeout = timeout if timeout is not None else self.timeout end_time = time.time() if timeout is not None and timeout > 0: end_time += timeout diff --git a/lockfile/sqlitelockfile.py b/lockfile/sqlitelockfile.py index 7dee4a8..734ce03 100644 --- a/lockfile/sqlitelockfile.py +++ b/lockfile/sqlitelockfile.py @@ -50,7 +50,7 @@ class SQLiteLockFile(LockBase): atexit.register(os.unlink, SQLiteLockFile.testdb) def acquire(self, timeout=None): - timeout = timeout is not None and timeout or self.timeout + timeout = timeout if timeout is not None else self.timeout end_time = time.time() if timeout is not None and timeout > 0: end_time += timeout diff --git a/lockfile/symlinklockfile.py b/lockfile/symlinklockfile.py index 57551a3..b5dd71f 100644 --- a/lockfile/symlinklockfile.py +++ b/lockfile/symlinklockfile.py @@ -21,7 +21,7 @@ class SymlinkLockFile(LockBase): # 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 + timeout = timeout if timeout is not None else self.timeout end_time = time.time() if timeout is not None and timeout > 0: end_time += timeout |