Skip to content

Commit 5aa8d91

Browse files
committed
Add a no-op mode to SimpleLock
1 parent 9867ff4 commit 5aa8d91

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

mautrix/util/simple_lock.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,31 +13,41 @@ class SimpleLock:
1313
_event: asyncio.Event
1414
log: logging.Logger | None
1515
message: str | None
16-
17-
def __init__(self, message: str | None = None, log: logging.Logger | None = None) -> None:
18-
self._event = asyncio.Event()
19-
self._event.set()
16+
noop_mode: bool
17+
18+
def __init__(
19+
self,
20+
message: str | None = None,
21+
log: logging.Logger | None = None,
22+
noop_mode: bool = False,
23+
) -> None:
24+
self.noop_mode = noop_mode
25+
if not noop_mode:
26+
self._event = asyncio.Event()
27+
self._event.set()
2028
self.log = log
2129
self.message = message
2230

2331
def __enter__(self) -> None:
24-
self._event.clear()
32+
if not self.noop_mode:
33+
self._event.clear()
2534

2635
async def __aenter__(self) -> None:
2736
self.__enter__()
2837

2938
def __exit__(self, exc_type, exc_val, exc_tb) -> None:
30-
self._event.set()
39+
if not self.noop_mode:
40+
self._event.set()
3141

3242
def __aexit__(self, exc_type, exc_val, exc_tb) -> None:
3343
self.__exit__(exc_type, exc_val, exc_tb)
3444

3545
@property
3646
def locked(self) -> bool:
37-
return not self._event.is_set()
47+
return not self.noop_mode and not self._event.is_set()
3848

3949
async def wait(self, task: str | None = None) -> None:
40-
if not self._event.is_set():
50+
if not self.noop_mode and not self._event.is_set():
4151
if self.log and self.message:
4252
self.log.debug(self.message, task)
4353
await self._event.wait()

0 commit comments

Comments
 (0)