diff --git a/ddtrace/internal/ipc.py b/ddtrace/internal/ipc.py index 7ddfe8e9d7b..710336ca2df 100644 --- a/ddtrace/internal/ipc.py +++ b/ddtrace/internal/ipc.py @@ -1,4 +1,3 @@ -from contextlib import contextmanager import os import secrets import tempfile @@ -57,9 +56,7 @@ class ReadLock(BaseUnixLock): class WriteLock(BaseUnixLock): __acquire_mode__ = fcntl.LOCK_EX - @contextmanager - def open_file(path, mode): - yield unpatched_open(path, mode) + open_file = unpatched_open except ModuleNotFoundError: # Availability: Windows @@ -78,7 +75,7 @@ def release(self): ReadLock = WriteLock = BaseWinLock # type: ignore - def open_file(path, mode): + def open_file(path, mode): # type: ignore import _winapi # force all modes to be read/write binary diff --git a/releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml b/releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml new file mode 100644 index 00000000000..116a58490ce --- /dev/null +++ b/releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + Prevent a potential ``ResourceWarning`` in multiprocess scenarios.