diff --git a/silverback/main.py b/silverback/main.py index 16e515cc..eccedd5e 100644 --- a/silverback/main.py +++ b/silverback/main.py @@ -1,4 +1,3 @@ -import asyncio import atexit import inspect from collections import defaultdict @@ -235,22 +234,19 @@ async def __create_snapshot_handler( # To ensure we don't have too many forks at once # HACK: Until `NetworkManager.fork` (and `ProviderContextManager`) allows concurrency - fork_lock: asyncio.Lock = asyncio.Lock() - def _with_fork_decorator(self, handler: Callable) -> Callable: # Trigger worker-side handling using fork network by wrapping handler fork_context = self.provider.network_manager.fork @wraps(handler) async def fork_handler(*args, **kwargs): - async with self.fork_lock: - with fork_context(): - result = handler(*args, **kwargs) + with fork_context(): + result = handler(*args, **kwargs) - if inspect.isawaitable(result): - return await result + if inspect.isawaitable(result): + return await result - return result + return result return fork_handler