From a0e3d7d1923a09f9855ad4f6d4dadd34e0708885 Mon Sep 17 00:00:00 2001 From: Ishaan Gupta Date: Mon, 13 Apr 2026 02:52:41 +0530 Subject: [PATCH] perf(middleware): await background task cancellation on timeout (#786) --- packages/openai-sdk-python/pyproject.toml | 2 +- .../src/supermemory_openai/middleware.py | 9 ++++++--- packages/openai-sdk-python/uv.lock | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/openai-sdk-python/pyproject.toml b/packages/openai-sdk-python/pyproject.toml index b4744501..c808d79f 100644 --- a/packages/openai-sdk-python/pyproject.toml +++ b/packages/openai-sdk-python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "supermemory-openai-sdk" -version = "1.0.2" +version = "1.0.3" description = "Memory tools for OpenAI function calling with supermemory" readme = "README.md" license = "MIT" diff --git a/packages/openai-sdk-python/src/supermemory_openai/middleware.py b/packages/openai-sdk-python/src/supermemory_openai/middleware.py index 4f6dc8ec..12100065 100644 --- a/packages/openai-sdk-python/src/supermemory_openai/middleware.py +++ b/packages/openai-sdk-python/src/supermemory_openai/middleware.py @@ -554,9 +554,12 @@ class SupermemoryOpenAIWrapper: f"Background tasks did not complete within {timeout}s timeout" ) # Cancel remaining tasks - for task in self._background_tasks: - if not task.done(): - task.cancel() + tasks_to_cancel = [task for task in self._background_tasks if not task.done()] + for task in tasks_to_cancel: + task.cancel() + + if tasks_to_cancel: + await asyncio.gather(*tasks_to_cancel, return_exceptions=True) raise def cancel_background_tasks(self) -> None: diff --git a/packages/openai-sdk-python/uv.lock b/packages/openai-sdk-python/uv.lock index 7790fd44..26688c59 100644 --- a/packages/openai-sdk-python/uv.lock +++ b/packages/openai-sdk-python/uv.lock @@ -2427,7 +2427,7 @@ wheels = [ [[package]] name = "supermemory-openai-sdk" -version = "1.0.2" +version = "1.0.3" source = { editable = "." } dependencies = [ { name = "openai" },