try contextmanager (#26074)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
760a2c656c
commit
f4522fd695
1 changed files with 15 additions and 34 deletions
|
|
@ -5,6 +5,7 @@ Unified event manager for collecting and emitting events.
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
from collections.abc import Generator
|
from collections.abc import Generator
|
||||||
|
from contextlib import contextmanager
|
||||||
from typing import final
|
from typing import final
|
||||||
|
|
||||||
from core.workflow.graph_events import GraphEngineEvent
|
from core.workflow.graph_events import GraphEngineEvent
|
||||||
|
|
@ -51,43 +52,23 @@ class ReadWriteLock:
|
||||||
"""Release a write lock."""
|
"""Release a write lock."""
|
||||||
self._read_ready.release()
|
self._read_ready.release()
|
||||||
|
|
||||||
def read_lock(self) -> "ReadLockContext":
|
@contextmanager
|
||||||
|
def read_lock(self):
|
||||||
"""Return a context manager for read locking."""
|
"""Return a context manager for read locking."""
|
||||||
return ReadLockContext(self)
|
self.acquire_read()
|
||||||
|
try:
|
||||||
|
yield
|
||||||
|
finally:
|
||||||
|
self.release_read()
|
||||||
|
|
||||||
def write_lock(self) -> "WriteLockContext":
|
@contextmanager
|
||||||
|
def write_lock(self):
|
||||||
"""Return a context manager for write locking."""
|
"""Return a context manager for write locking."""
|
||||||
return WriteLockContext(self)
|
self.acquire_write()
|
||||||
|
try:
|
||||||
|
yield
|
||||||
@final
|
finally:
|
||||||
class ReadLockContext:
|
self.release_write()
|
||||||
"""Context manager for read locks."""
|
|
||||||
|
|
||||||
def __init__(self, lock: ReadWriteLock) -> None:
|
|
||||||
self._lock = lock
|
|
||||||
|
|
||||||
def __enter__(self) -> "ReadLockContext":
|
|
||||||
self._lock.acquire_read()
|
|
||||||
return self
|
|
||||||
|
|
||||||
def __exit__(self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: object) -> None:
|
|
||||||
self._lock.release_read()
|
|
||||||
|
|
||||||
|
|
||||||
@final
|
|
||||||
class WriteLockContext:
|
|
||||||
"""Context manager for write locks."""
|
|
||||||
|
|
||||||
def __init__(self, lock: ReadWriteLock) -> None:
|
|
||||||
self._lock = lock
|
|
||||||
|
|
||||||
def __enter__(self) -> "WriteLockContext":
|
|
||||||
self._lock.acquire_write()
|
|
||||||
return self
|
|
||||||
|
|
||||||
def __exit__(self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: object) -> None:
|
|
||||||
self._lock.release_write()
|
|
||||||
|
|
||||||
|
|
||||||
@final
|
@final
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue