Skip to content

Commit ec2f069

Browse files
committed
2 parents 797388d + 1ee6afe commit ec2f069

File tree

2 files changed

+34
-29
lines changed

2 files changed

+34
-29
lines changed

poetry.lock

Lines changed: 24 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/labthings/core/lock.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
from gevent.hub import getcurrent
22
from gevent.lock import RLock as _RLock
33

4+
import logging
5+
46
from .exceptions import LockError
57

8+
sentinel = object()
69

710
class RLock(_RLock):
811
def locked(self):
@@ -22,16 +25,16 @@ class StrictLock:
2225
timeout (int): Time in seconds acquisition will wait before raising an exception
2326
"""
2427

25-
def __init__(self, timeout=1, name=None):
28+
def __init__(self, timeout=None, name=None):
2629
self._lock = RLock()
2730
self.timeout = timeout
2831
self.name = name
2932

3033
def locked(self):
3134
return self._lock.locked()
3235

33-
def acquire(self, blocking=True, timeout=None, _strict=True):
34-
if not timeout:
36+
def acquire(self, blocking=True, timeout=sentinel, _strict=True):
37+
if timeout is sentinel:
3538
timeout = self.timeout
3639
result = self._lock.acquire(blocking, timeout=timeout)
3740
if _strict and not result:
@@ -74,12 +77,12 @@ class CompositeLock:
7477
timeout (int): Time in seconds acquisition will wait before raising an exception
7578
"""
7679

77-
def __init__(self, locks, timeout=1):
80+
def __init__(self, locks, timeout=None):
7881
self.locks = locks
7982
self.timeout = timeout
8083

81-
def acquire(self, blocking=True, timeout=None):
82-
if not timeout:
84+
def acquire(self, blocking=True, timeout=sentinel):
85+
if timeout is sentinel:
8386
timeout = self.timeout
8487

8588
lock_all = all(
@@ -89,6 +92,7 @@ def acquire(self, blocking=True, timeout=None):
8992

9093
if not lock_all:
9194
self._emergency_release()
95+
logging.error(f"Unable to acquire {self} within {timeout} seconds")
9296
raise LockError("ACQUIRE_ERROR", self)
9397

9498
return True

0 commit comments

Comments
 (0)