Skip to content

Commit dfe253d

Browse files
committed
fix: fastapi request scope teardown bug
1 parent 5cd6e5e commit dfe253d

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

libs/dinkleberg/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "dinkleberg"
3-
version = "2.3.0"
3+
version = "2.3.1"
44
description = "Your friendly neighbour when it comes to dependency management."
55
requires-python = ">=3.12"
66
readme = "README.md"

libs/dinkleberg/src/dinkleberg/fastapi/request_scope.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
import asyncio
2+
13
from fastapi import Request
24
from fastapi.websockets import WebSocket
35

46
from ..dependency_configurator import DependencyConfigurator
57

8+
_dinkleberg_cleanup_tasks = set()
9+
610

711
async def request_scope(request: Request = None, websocket: WebSocket = None):
812
state = request.app.state if request is not None else websocket.app.state
@@ -21,4 +25,6 @@ async def request_scope(request: Request = None, websocket: WebSocket = None):
2125
try:
2226
yield scope
2327
finally:
24-
await scope.close()
28+
task = asyncio.create_task(scope.close())
29+
_dinkleberg_cleanup_tasks.add(task)
30+
task.add_done_callback(_dinkleberg_cleanup_tasks.discard)

0 commit comments

Comments
 (0)