try contextmanager (#26074)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
Asuka Minato 2025-09-23 01:35:54 +09:00 • committed by GitHub
commit f4522fd695
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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